爬虫IP被封的处理方法
在数据爬虫的工作中,我们不可避免的会遭遇反爬封禁,所以会有爬虫的攻防,在攻和守之间两股力量不断的抗衡。
接下来就讲讲在数据抓取或爬虫时ip被限制的几种解决方案问题:
解决方案一:
建议一定要使用代理IP;在有外网IP的机器上,部署爬虫代理服务器;使用轮训替换代理服务器来访问想要采集的网址。这样的话,你的程序逻辑变化小,只要代理功能就可以,而且根据对方网址屏蔽标准不同,你只需要添加不同的代理就可以了。再者,就算具体IP被屏蔽了,可以直接把代理服务器下线,程序逻辑不需要变化。
解决方案二:
使用ADSL+脚本,监测是否被封,之后不断切换ip;设置查询频率限制,也就是限制调用该网站提供的服务接口。
解决方案三:
useragent伪装和轮换,使用IPIDEA全球http和轮换,cookies的处理。
解决方案四:
网站封IP的依据一般是单位时间内特定IP的访问次数过多,很多网址时可以将采集的任务按目标站点的IP进行分组,之后通过控制每个IP在单位时间内发出任务的个数来避免被封。
解决方案五:
尽可能的模拟用户行为,比如UserAgent经常换一换,访问时间间隔设长一点,访问时间设置为随机数;访问页面的顺序也能随机。
解决方案六:
对爬虫抓取进行压力控制;可以考虑使用代理的方式访问目标站点:减少抓取频率,时间设置长一些,访问时间运用随机数;频繁切换UserAgent(模拟浏览器访问);多页面数据,随机访问之后抓取数据;更换用户IP,这是最直接有效的方法。