爬虫咋用代理ip( 三 )


step2:一定是每分钟请求60次,不要每分钟3次或者每分钟5次。知道为什么吗?比如一个IP的有效期从18:00:01分开始算有效期60秒,你18:00:00来请求的时候是拿不到的,当你18:00:20来拿的时候,它只剩下40秒了,就是有可能少20秒。
step3:在数据库里面记录好 导入时间、IP、Port、过期时间、当前有多少进程在使用这个IP IP可用状态 等字段;
step4:写一个抓取脚本,抓取脚本从数据库里面读取可用IP,每个进程从数据库获取一个IP,获取一个 状态可用,使用的进程少的IP,当然也可以控制每个进程只使用一个IP,如果没有符合条件的IP,则循环Sleep 1秒等待新的IP出现。
step5:执行抓取,对结果进行判断,处理cookie等,只要出现验证码或者失败就放弃这个IP(在数据库里面标记为不可用或者直接删除,另外如果是标记为不可用的话,如果目标站只封1小时,那可以1小时以后如果接口里面又返回这个IP,那可以再标记为可用),重新换一个IP。
推荐:【方案四】使用百变IP-Proxy,大概逻辑如下:
百变IP-Proxy支持免提取调用。
方式一:使用百变IP-Proxy,统一入口,支持免提取调用,设置白名单后即可使用,支持每次请求随机一个IP出口,或者多次请求使用同一个IP作为出口。
通道A:http://proxy.baibianip.com:8000 每次随机一个出口IP。
通道B:proxy.baibianip.com:8001~8020 这20个端口,每次请求都会固定一个出口IP,IP有效期10s-5分钟。如果在请求之前想知道出口IP和剩余可用时间,可通过这个接口获取。
通道A和使用B调用方式完全一样,不用做任何额外改造,只需要在程序中控制请求端口号就行了(比如你用通道B的8001端口,然后现在想换一个IP当出口,只需要换8002就好了,不需要发送换IP的命令给我们),超级方便,百变IP会自动切换后端出口IP,百变IP智能转发服务会根据后端服务器的心跳情况、负载情况、网络稳定性、IP分散度等综合因素根据算法智能转发。系统支持Keep-Alive。智能转发服务不会出现因为切换IP而出现服务不能用的情况,平滑切换。


推荐阅读