通过代理ip进行分布式爬虫的几种方案

x
用微信扫描二维码
分享至好友和朋友圈

  假如不用代理ip,爬虫业务必定无路可行,因此大部分爬虫工作者都会去购买安全稳定的代理ip。使用了高质量的代理ip后,会不会就能够无后顾之忧了呢?这个可不会这么容易,还要改进方案,有效分配资源,提升工作效率,又快速又稳定又高效的完成爬虫。

  

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

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

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

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

  方案弊端:每个IP都是有期限的,要是提取了一百个,用到第二十个时,或许剩下的大多数都无法使用了。要是设置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、在数据库里面记录好 导入时间、IP、Port、过期时间、IP可用状态 等字段;

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

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

  这种方案有效的避开了代理服务器资源的消耗,有效的分配代理IP的使用,更加的高效和稳定,保障了爬虫工作的持久性和稳定性。掘金网ip代理使用稳定可靠,建议大家可以测试一下。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

跟贴 跟贴 3 参与 3
© 1997-2020 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

掘金网

致力于互联网行业

头像

掘金网

致力于互联网行业

90

篇文章

12

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码