注册
登录
提问时间:2019/7/23 15:59:36    楼主:未知网友   阅读量:96

大家在使用分布式爬虫或者叫多进程爬虫的时候,由于目标网站的限制,可能会用到代理IP。

要使用代理IP,首先要找一个稳定高匿的私密代理IP提供商,爬虫肯定得用私密代理,普通代理、开放代理是不行的。

如何才能资源利用最优化、最合理的使用代理IP来抓数据,下面的文章可以提供一些思路

一般大家都会有下面几种实现方式:

推荐:【方案一】使用站大爷短效优质代理,一款拥有企业级稳定高匿、高速代理IP 的高质量出口池,是爬虫的不二之选。

大概使用逻辑如下:

站大爷代理IP提供安全、稳定、高匿的海量IP,支持一键提取调用,设置白名单使用,同时支持每次请求随机一个IP,或者多个IP。

推荐:【方案二】先导入数据库,从数据库里面取IP,大概逻辑如下:

step1:在数据库里面建一个表,写一个导入脚本,每分钟请求6次API,把IP列表导入到数据库里面(接口返回的是实时可用的,站大爷代理会实时检测,筛选出3分钟以上有效期的代理IP)。

step2:一定是每10秒请求1次,不要低于10秒一次,也不要高于10秒一次,知道为什么吗?低于10秒提取不到IP,提示提取过快;高于10秒会少提取到IP量。当然,如果程序不好控制,那高于10秒也是可以的。

step3:在数据库里面记录好 导入时间、IP、Port、过期时间、当前有多少进程在使用这个IP IP可用状态 等字段;

step4:写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP,获取一个状态可用,使用的进程少的IP,当然也可以控制每个进程只使用一个IP,如果没有符合条件的IP,则循环Sleep 1秒等待新的IP出现。

step5:执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP(在数据库里面标记为不可用或者直接删除),重新换一个IP。