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