爬虫使用代理IP,分布式有哪些方法?

作者:51IP代理 出处:互联网 时间:2020-03-17
    爬虫使用分布式有效提高工作效率及工作效率,这些也是从事爬虫工作者非常注重的部分,有效提高进度,快速采集数据信息,那么使用分布式的方法有哪些,很多人了解不够全面,为了提高工作效率;
    第一:每个进程从接口API中随机取一个IP列表(比如一次提取50个IP)来循环使用,失败则再调用API获取,大概逻辑如下:
 
    每个线程,从接口随机取回一批IP回来,循环尝试IP列表去抓取数据;
 
    如果访问成功,则继续抓取下一条。
 
    如果失败了(比如超时、出现验证码等),再从接口取一批IP,继续尝试。
 
    方案缺点:IP代理都是有时间有效期的,如果提取了50个,你在一定期限内是有了前20个,后面的可能由于时间限制就用不了了。
 
    如果你把http请求设置的链接时间超时为3秒钟,毒物时间超时间5秒,那么这3-8秒就可能被你浪费掉,有这3-8秒能做好多事了。
 
    第二:每个进程从接口API中随机取一个IP来使用,失败则再调用API获取一个IP,大概逻辑如下:
 
    每个线程,从接口随机取回一个IP来,用这个IP去访问资源,
 
    如果访问成功,则继续抓下一条。
 
    如果失败了(比如超时、出现验证码等),再从接口随机取一个IP,继续尝试。
 
    方案缺点:频繁的调用API获取IP,会对代理服务器造成非常大的压力,影响API接口稳定,可能会被限制提取。这种方案不能持久稳定的运行。
 
    第三:先提取大量IP导入本地数据库,从数据库里面取IP,大概逻辑如下:
 
    在数据库里面建一个表,写一个导入脚本,每分钟请求多少次API(咨询代理IP服务商建议),把IP列表导入到数据库里面。
 
    在数据库里面记录好 导入时间、IP、Port、过期时间、IP可用状态 等字段;
 
    写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP进行使用。
 
    执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP,重新换一个IP。
 
    爬虫不经需要高质量稳定的代理ip,在有效的爬虫进行中也有很多方法提高数据信息采集,分布式采集是最有效的方法,也是爬虫爱好的广泛运用。
0