帮助中心

   

热门搜索: 免费续期  推广  永久会员

使用代理IP做分布式爬虫的方案

现在网络爬虫,如果不用代理IP,是很难进行下去的,因为一来网站的反爬限制越来越多,二来是不用代理IP就会很容易被发现自己在爬虫的真实IP,可能会导致风险。

使用代理IP做分布式爬虫的方案

通过代理IP分布式爬虫,可以怎么实现?下面看看迅联加速的3个方案介绍。

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

1、每个进程,从接口随机取回一个ip来,用这个ip来浏览资源,

2、要是访问成功,则继续抓下一条。

3、要是失败了,再从接口随机取一个IP,继续尝试。

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

方案二:每个进程从接口API中随机取一个IP列表来反复使用,失效后再调用API获取,大致逻辑是这样:

1、每个进程,从接口随机取回一批ip回来,反复试着ip目录去抓取数据;

2、要是访问成功,则继续抓取下一条。

3、要是失败了,再从接口取一批IP,继续尝试。

方案弊端:每个IP都是有期限的,要是提取了一百个,用到第二十个时,或许剩下的大多数都无法使用了。要是设置HTTP请求时连接时间超时是3秒,读取时间超时是5秒,那么或许会耗费3-8秒的时间,在这3-8秒内可能抓取了几百次了。

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

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

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

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

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

好用的爬虫代理IP,大家可以考虑使用迅联加速,IP池自建,海量IP可以及时更换。

关闭
19907977089
关注微信公众号,免费送30分钟时长