如何解决爬虫被封IP的问题
由于公司的需要项目,需要收集各种地图数据和一些大型网站数据。那么,爬虫IP被屏蔽了怎么办?教你如何解决爬虫被封IP的问题:
精灵IP代理必须要有更多的IP,比如ADSL。有条件的话,其实可以跟机房申请一个外部IP。
使用外部IP在机器上部署代理IP服务器
您的程序使用轮换训练而不是IP代理服务器来访问您想要收集的网站。
好处:
程序逻辑变化不大,只需要IP代理函数。
根据其他网站不同的屏蔽规则,你只需要多加几个代理就可以了。
即使某个特定IP被屏蔽,也可以直接注销代理服务器到OK,程序逻辑不需要改变。
有少数网站防范措施薄弱,可以伪装IP,修改x-forward-for。可以被旁路。大多数网站如果要经常抓取,通常需要更多的IP。我最喜欢的方案是将国外的VP匹配多个IP,通过默认网关交换实现IP交换,比HTTP代理效率高很多,大部分情况下可能也比ADSL交换效率高。
ADSL脚本,监控是否被屏蔽,然后不断切换ip。
设置查询频率限制
正统的方式是调用这个网站提供的服务接口。
有8年以上爬虫经验的人告诉你,ADSL在中国是王道,有很多应用线路分布在很多不同的电信厅,跨省市可以更好。编写自己的断开重拨组件,编写自己的动态IP跟踪服务,并重置远程硬件(主要是为了ADSL猫防止它们停下来),分配其他任务,恢复数据都不是大问题。我的已经稳定运行了几年,状况良好!
精灵IP代理网站屏蔽的依据一般是特定IP单位时间的访问量。我会把收集的任务按照目标站点的IP分组,控制每个IP单位时间发送的任务数量,避免被封。当然这个前提是你收集了很多网站,如果只收藏一个网站,就只能通过多个外部IP来实现。