`

HttpClient使用代理IP

阅读更多
1. HttpClient使用代理IP

在爬取网页的时候,有的目标站点有反爬虫机制,对于频繁访问站点以及规则性访问站点的行为,会采集屏蔽IP措施。这时候,代理IP就派上用场了。
关于代理IP的话也分几种透明代理、匿名代理、混淆代理、高匿代理

1) 透明代理(TransparentProxy)
REMOTE_ADDR=ProxyIP
HTTP_VIA=ProxyIP
HTTP_X_FORWARDED_FOR=YourIP
透明代理虽然可以直接“隐藏”你的IP地址,但是还是可以从HTTP_X_FORWARDED_FOR来查到你是谁。

2) 匿名代理(AnonymousProxy)
REMOTE_ADDR=proxyIP
HTTP_VIA=proxyIP
HTTP_X_FORWARDED_FOR=proxyIP
匿名代理比透明代理进步了一点:别人只能知道你用了代理,无法知道你是谁。
还有一种比纯匿名代理更先进一点的:混淆代理。

3) 混淆代理(DistortingProxies)
REMOTE_ADDR=ProxyIP
HTTP_VIA=ProxyIP
HTTP_X_FORWARDED_FOR=RandomIPaddress
如上,与匿名代理相同,如果使用了混淆代理,别人还是能知道你在用代理,但是会得到一个假的IP地址,伪装的更逼真。

4) 高匿代理(Eliteproxy或HighAnonymityProxy)
REMOTE_ADDR=ProxyIP
HTTP_VIA=notdetermined
HTTP_X_FORWARDED_FOR=notdetermined
可以看出来,高匿代理让别人根本无法发现你是在用代理,所以是最好的选择。
一般我们搞爬虫用的都是高匿的代理IP;建议大家用国内代理IP以及主干道网络大城市的代理IP访问速度快;
那代理IP从哪里搞呢很简单百度一下,你就知道一大堆代理IP站点。一般都会给出一些免费的,但是花点钱搞收费接口更加方便;
比如: http://www.66ip.cn/


Demo01.java

package com.andrew.httpClient.chap04;

import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

public class Demo01 {
    public static void main(String[] args) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault(); // 创建httpClient实例
        HttpGet httpGet = new HttpGet("http://www.tuicool.com/"); // 创建httpget实例
        HttpHost proxy = new HttpHost("221.239.86.26", 32228);
        RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
        httpGet.setConfig(config);
        httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0");
        CloseableHttpResponse response = httpClient.execute(httpGet); // 执行http get请求
        HttpEntity entity = response.getEntity(); // 获取返回实体
        System.out.println("网页内容:" + EntityUtils.toString(entity, "utf-8")); // 获取网页内容
        response.close(); // response关闭
        httpClient.close(); // httpClient关闭
    }
}
分享到:
评论

相关推荐

    java使用proxy类设置代理ip

    获取网络资源,使用动态代理ip解决单个ip访问次数限制问题

    java多线程代理IP池

    多线程代理IP池,一直看到有关这方面的技术,最近实现了一个。简单的来说,启动后,会一直定时的获取代理ip,并自动检测代理ip的活跃度。运用多线程的技术,在极短的时间内获取大量的ip进行筛选。架构也比较清楚,...

    Java网络爬虫抓取代理ip

    通过Java网络爬虫爬取指定代理ip网上的ip,利用了jsoup、httpclient技术实现

    HttpClient问题:The server failed to respond with a valid HTTP resp

    JAVAHttpClientThe server failed to respond with a validCaused by: org.apache.htt

    Java爬虫Jsoup+httpclient获取动态生成的数据

    主要介绍了Java爬虫Jsoup+httpclient获取动态生成的数据的相关资料,需要的朋友可以参考下

    15.tornado的httpclient模块使用介绍.zip

    User-Agent设置和IP代理的应用 验证码自动识别方法 文件IO操作 文件读写基本操作 CSV和Excel文件的处理 文本文件编码和解码 数据存储与持久化 数据库的使用和操作(如MySQL、MongoDB等) 数据存储格式的选择和优化...

    http-proxy:实现单机多IP绑定方案

    https://api.weibo.com 需要代理的地址 查看各ip的可用剩余量 java -cp httpclient-example-1.0-SNAPSHOT-jar-with-dependencies.jar SinaApiRemain eth0 2.00SlDQsDdcZIJC94e5308f67sRL13x interfaceeth0, ips=[/60...

    Spider:通过多线程选择数据,并保存到excel

    进行IP代理(未使用代理, //www.xicidaili.com/找到稳定可用的代理) 通过HttpClient获取到请求页面的字符串字符串 通过jsoup解析 (解析需要自己在页面上查看源代码,分析DOM结构) (通过使用jsoup的css选择器的...

    易语言-Hp-Socket For E 5.4.2 高性能TCP/UDP通信组件 源码+模块+例程

     为了让使用者能方便快速地学习和使用 HP-Socket ,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、PACK 模型示例、性能测试示例以及其它编程语言示例)。...

    java开源包4

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    curl_http_client:基于Curl的HTTP客户端-Curl php lib周围的简单但有效的OOP包装器

    它允许发送发布/获取请求,使用代理,绑定到特定IP,存储cookie等。安装将CurlHttpClient添加到您的composer.json { "require": { "dinke/curl-http-client": "dev-master" }}用法$ curl = new \ Dinke \ ...

    java jdk实列宝典 光盘源代码

    代理服务器,ProxyServer.java; telnet客户端,访问系统的telnet服务实质上是与telnet服务建立socket连接,默认的telnet服务的端口是23,TelnetClient.java; UDP编程,包括收发udp报文; 聊天室服务器端,Chat...

    java开源包8

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    Andord和JAVA的HTTP&SPDY开源库

    如果你的服务拥有多个IP地址,一旦第一个连接失败,OKHTTP会使用其他的备份地址,对于处理驻留在冗余数据中心的IPV4+IPV6和托管服务,这是必备的技术。OKHTTP还能修复有问题的代理服务器和失败的SSL握手问题。 不...

    java开源包1

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包11

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包2

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包3

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包6

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

    java开源包5

    PortGroper 是一款java写的开源拒绝服务测试工具,它不是僵尸网络类的ddos,而是使用大量的代理作为bots发起DDOS。Port Groper可以与用测试防火墙,干扰web 统计脚本的跟踪,为网站增加流量..往好了用什么都能干,就是...

Global site tag (gtag.js) - Google Analytics