换ip软件,代理ip软件,更改ip地址-智游代理
首页 IP软件套餐 HTTP代理套餐 API提取 使用帮助 新闻资讯 长效IP 注册 登录 实名验证

在线咨询

800819380 售前客服
在线客服,实时响应

客户经理:
13326404693

473197630 QQ群
473197630

微信客服

您的位置: 首页 > 新闻资讯 > 爬虫代理 > 正文

分布式爬虫代理IP有什么解决方案

发布时间:2018年10月13日 来源:智游代理 www.zhiyoudaili.com

没有代理IP,爬虫工作将寸步难行,所以很多爬虫工程师都需要去选购高效稳定的代理IP。有了优质代理IP后,是不是就可以高枕无忧了呢?事情没有那么简单,还需要优化方案,合理分配资源,提高工作效率,更高效更快速更稳定地进行爬虫工作。

 

方案一、每个进程从接口API中随机取一个IP列表(比如一次提取100IP)来循环使用,失败则再调用API获取,大概逻辑如下:

 

1、每个进程(或线程),从接口随机取回一批IP回来,循环尝试IP列表去抓取数据;

2、如果访问成功,则继续抓取下一条;

3、如果失败了(比如超时、出现验证码等),再从接口取一批IP,继续尝试。

方案缺点:每个IP都是有有效期的,如果提取了100个,当使用了第10个的时候,可能后面的大部分都失效了。如果你设置HTTP请求的时候连接时间超时为3秒,读取时间超时为5秒,那你将会有可能浪费3-8秒的时间,说不定这3-8秒已经可以抓取几十次了。

 

方案二:每个进程从接口API中随机取一个IP来使用,失败则再调用API获取一个IP,大概逻辑如下:

 

1、每个进程(或线程),从接口随机取回一个IP来,用这个IP去访问资源;

2、如果访问成功,则继续抓下一条;

3、如果失败了(比如超时、出现验证码等),再从接口随机取一个IP,继续尝试。

方案缺点:调用API获取IP的行为非常频繁,会对代理服务器造成非常大的压力,影响API接口稳定,可能会被限制提取。这种方案也不适合,不能持久稳定的运行。


方案三:先提取大量IP导入本地数据库,从数据库里面取IP,大概逻辑如下:


1、在数据库里面建一个表,写一个导入脚本,每分钟请求多少次API(咨询代理IP服务商建议),把IP列表导入到数据库里面;

2、在数据库里面记录好:导入时间、IPPort、过期时间、IP可用状态 等字段;

3、写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP进行使用;

4、执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP,重新换一个IP

 

这种方案有效地避开了代理服务器资源的消耗,有效地分配代理IP的使用,更加的高效和稳定,保障了爬虫工作的持久性和稳定性。

转载注明来自:智游代理IP http://www.zhiyoudaili.com/

相关文章内容简介

1 爬虫使用不同的IP代理为什么效果不一样

我们爬虫在选择IP代理的时候,会发现有特别多的不同的IP提供商,价格差异也很大,从几块钱一天不限量的到几千块钱一天的都有,而且都说自己IP质量很好,都是高匿IP,但是实际使用起来,却发现IP可用率、连通速度都大相径庭,IP代理质量相同怎么效果不同?有些用户反映,在使用IP代理的过程中有时候会遇到这样的情况,即使用同样质量的一批不同的IP代理加上相同的策略访问同一个网站,有的成功有的失败,这是为什么呢?当下很多IP代理池,如果没有特殊注明为独享IP池,都是共享IP池。免费IP代理是最大的共享IP池,面向整个网络用户共享,收费IP代理则是面向自家的付费用户(超低价的普通代理和开放代理等除外,它们本质上还是网上收集的免费IP代理)。既然是共享IP代理池,那么不可避免的就会有冲突发生,会有部分用户使用相同的部分IP访问相同的网站。所以,在使用IP代理访问网站的过程中,会发现有一小部分才刚开始使用,就被反爬策略识别了。那么有什么好的解决办法呢?一是选择购买IP池大的共享IP池,IP池越大,项目冲突的几率就越小;比如智游代理的独享IP池,避免一个IP同时多个... [阅读全文]

2 Python爬虫通过ip代理抓取网页

如果大家在采集网站信息的时候,特别频繁的来访问,非常容易被目标网站检测到从而进行屏蔽,解决这类情况的一种有效的方法就是使用代理IP,当我们连上网络上网的时候,电脑会被分配一个IP,提供给我们使用,如果我们频繁访问一个网站时,这个网站也会因为发现同一个ip地址访问多次而进行屏蔽的,这个时候更换IP地址访问是最好的解决方式,多个ip地址进行随机地轮流访问,减少被该网站检测到的概率。假如我们再使用多个不同的headers请求头,这样就会有多个ip+主机的组合,浏览时被发现的机率又更加降低了。关于代码中ip代理的使用,下面介绍一下:步骤:1、urllib2库中的ProxyHandler类,通过此类可以使用ip代理访问网页proxy_support=urllib2.ProxyHandler({}),其中参数是一个字典{‘类型':'代理ip:端口号'}2、定制、创建一个openeropener=urllib2.build_opener(proxy_support)3、(1)安装openerurlib2.install_opener(o... [阅读全文]

热门标签

推荐阅读

  1. 11

    2019-01

    为什么爬虫要使用代理IP

    做网络爬虫时,一般对代理IP的需求量比较大。因为在爬取网站信息的过程中,很多网站做了反爬虫策略,可能会对每个IP做频次控制。这样我们在爬取网站时就需要很多代理IP。

  2. 11

    2019-06

    企业爬虫为什么不能用免费代理ip

    在大数据的前提下,现在会用代理IP的人增多,本着有便宜不占王八蛋的心里,还是有很多用户不愿意使用付费的爬虫代理ip.而是选择网上公开的免费代理ip,尽管是完全免费,但是老话说得好

  3. 08

    2018-11

    爬虫使用代理防封IP

    在写爬虫爬取数据的时候,经常会遇到“HTTP Error 403: Forbidden”的提示,其实它只是一个HTTP状态码,表示你在请求一个资源文件但是nginx不允许你查看。

  4. 13

    2018-11

    用代理服务器加速爬虫速率

    虽然互联网上的信息非常多,用户可以在这个平台找寻到所有需要的信息,但是对于用户来说,信息的采集速度成为了一个大问题。

  5. 31

    2019-07

    爬虫刷量代理ip提供商怎么选择?

    现在的网络业务中,越来越多的需要使用到高匿真实动态,尤其是http代理,相比https以及socks5代理,http更加常见,需求量也更加广泛。对于初学者,可能更多的是去寻找一些免费的代理ip,虽然

  6. 15

    2019-09

    爬虫使用代理ip为什么还会被封

    很多网络爬虫用户使用了代理ip,为了就是防止抓取数据和采集数据防止ip被封,最近很多做网络爬虫的朋友反映,问什么我是使用了代理ip还是会被封,在正常的进行爬取数据时,突然停了,但