HttpClient(四)-- 使用代理IP 和 超时设置

1.代理IP的用处:

  在爬取网页的时候,有的目标站点有反爬虫机制,对于频繁访问站点以及规则性访问站点的行为,会采集屏蔽IP措施。这时候,就可以使用代理IP,屏蔽一个就换一个IP。

2.代理IP分类:

  代理IP的话 也分几种: 透明代理、匿名代理、混淆代理、高匿代理,一般使用高匿代理。

3.使用 RequestConfig.custom().setProxy(proxy).build() 来设置代理IP:

public static void main(String[] args) throws ClientProtocolException, IOException {
        // 创建httpClient实例
        CloseableHttpClient httpClient = HttpClients.createDefault();
        // 创建httpGet实例
        HttpGet httpGet = new HttpGet("http://www.tuicool.com");
        // 设置代理IP,设置连接超时时间 、 设置 请求读取数据的超时时间 、 设置从connect Manager获取Connection超时时间、
        HttpHost proxy = new HttpHost("122.228.25.97", 8101);
        RequestConfig requestConfig = RequestConfig.custom()
                .setProxy(proxy)
                .setConnectTimeout(10000)
                .setSocketTimeout(10000)
                .setConnectionRequestTimeout(3000)
                .build();
        httpGet.setConfig(requestConfig);
        // 设置请求头消息
        httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0");
        CloseableHttpResponse response = httpClient.execute(httpGet);

        if(response != null){
            HttpEntity entity = response.getEntity();  // 获取返回实体
            if(entity != null){
                System.out.println("网页内容为:" + EntityUtils.toString(entity, "utf-8"));
            }
        }
        if(response != null){
            response.close();
        }
        if(httpClient != null){
            httpClient.close();
        }
    }

4.实际开发中 我们是怎样获取到代理IP的呢?

  我们可以使用HttpClient来 爬取 http://www.xicidaili.com/ 上最新的20条的高匿代理IP,来保存到 链表中,当一个IP被屏蔽之后获取连接超时时,就接着取出 链表中的一个IP,以此类推,可以判断当链表中的数量小于5的时候,就重新爬取 代理IP 来保存到链表中。

时间: 2024-10-06 11:50:26

HttpClient(四)-- 使用代理IP 和 超时设置的相关文章

100行代码打造属于自己的代理ip池

经常使用爬虫的朋友对代理ip应该比较熟悉,代理ip就是可以模拟一个ip地址去访问某个网站.我们有时候需要爬取某个网站的大量信息时,可能由于我们爬的次数太多导致我们的ip被对方的服务器暂时屏蔽(也就是所谓的防爬虫防洪水的一种措施),这个时候就需要我们的代理ip出场了 思路分析(写爬虫前大家都必须要分析一下) https://www.xicidaili.com/ 上图就是我们的西刺代理网站,今天我们就是来拿它的数据,老司机一看这个界面就会自动右击鼠标->查看源代码, 我们会发现数据都在<tr>

代理ip最新识别方法及代理ip有效性检测方法

网络营销时代,网络成为企业营销的重要工具.线上有非常多的营销渠道可以利用.当然方法也就越来越多:自媒体.抖音.电商.微商等等,尤其当走进大数据时代,爬虫可以帮助企业在线上采集到相当精准的用户信息,成为企业制定营销策略的关键.当然,技术流的推广人员都知道,爬虫运行少不了代理ip的辅助. 代理ip最新识别方法以及代理ip有效性检测方法 一.代理ip常见的一些功能 1.突破自身ip访问限制,现在有许多的网站都对ip地址访问进行了限制,这时则可以通过代理ip来突破限制,让自己进入网站. 2.提高访问速度

浏览器怎么设置代理IP?四种浏览器设置代理IP的方法

有时候上网需要更换IP,但是本地IP不需要更换,只是通过更换浏览器IP的方式来隐藏自己的IP,突破网络的限制,那么浏览器怎么设置代理IP?不同的浏览器设置代理IP的方法略有不同,下面黑洞代理小编整理了四种浏览器设置代理IP的方法.1.IE浏览器IE浏览器无疑是最常用的浏览器,而像360浏览器.搜狗浏览器.QQ浏览器这样的浏览器都是基于IE内核开发的浏览器,设置代理IP的方法也大同小异.IE浏览器上选择"工具--Internet选项--连接--局域网设置".在"局域网设置&qu

python爬取准备四 定义Opener和设置代理IP

Handler和Opener Handler处理器和自定义Opener opener是urllib2.OpenerDirector的实例,我们之前一直在使用urlopen,它是一个特殊的opener(也就是我们构建好的). 但是urlopen()方法不支持代理.cookie等其他的HTTP/GTTPS高级功能.所有要支持这些功能: 1.使用相关的Handler处理器来创建特定功能的处理器对象: 2.然后通过urllib2.build_opener()方法使用这些处理器对象,创建自定义opener

org.apache.http.client.HttpClient; HttpClient 4.3超时设置

可用的code public static String doPost(String url, String params, String contentType) /*throws IOException */{ CloseableHttpClient client = HttpClients.createDefault(); RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(httpSoTimeout)

HttpClient超时设置

场景:最近并发较高,看到响应时间6s的时候,心里咯噔一下,我记得我设置的超时时间是5s啊.   原来读取超时时间没生效,只生效了连接超时时间. ConnectionTimeout:这定义了通过网络与服务器建立连接的超时时间.Httpclient包中通过一个异步线程去创建与服务器的socket连接,这就是该socket连接的超时时间,此处设置为3秒. 将url改为一个不存在的url,则会抛出org.apache.commons.httpclient.ConnectTimeoutException

Java中httpClient中三种超时设置

本文章给大家介绍一下关于Java中httpClient中的三种超时设置小结 在Apache的HttpClient包中,有三个设置超时的地方: /* 从连接池中取连接的超时时间*/ ConnManagerParams.setTimeout(params, 1000); /*连接超时*/ HttpConnectionParams.setConnectionTimeout(params, 2000); /*请求超时*/ HttpConnectionParams.setSoTimeout(params,

爬虫平台设置代理ip

首先从国外一个网站爬取了免费的代理ip信息存到mongodb中:接着代码设置: 在爬虫客户端抽象类中添加属性: 设置代理的代码其实就以下几句: firefoxProfile.setPreference("network.proxy.type", 1); firefoxProfile.setPreference("network.proxy.no_proxies_on", "localhost, 127.0.0.1"); //设置当没有代理ip时本

爬虫-设置代理ip

1.为什么要设置代理ip 在学习Python爬虫的时候,经常会遇见所要爬取的网站采取了反爬取技术导致爬取失败.高强度.高效率地爬取网页信息常常会给网站服务器带来巨大压力,所以同一个IP反复爬取同一个网页,就很可能被封,所以通过设置代理IP来避免被封,从而顺利爬取. 2.从那里获取免费的IP 西刺免费代理 快代理免费代理 from bs4 import BeautifulSoup import requests import random def get_ip_list(url, headers)