首页 > 编程知识 正文

使用爬虫采集网站时解决IP阻塞的几种方法

时间:2023-05-04 07:29:41 阅读:110712 作者:3367

方法1.

由于之前公司项目的需要,我们收集了谷歌地图数据和一些大型网站数据。

经验如下:

1.必须要IP,就像@alswl说的很对,ADSL。有条件的话,其实可以跟机房申请外部IP。

2.在具有外部IP的机器上部署代理服务器。

3.你的程序,用轮训代替代理服务器访问你要收藏的网站。

好处:

1.程序逻辑变化小,只需要代理函数。

2.根据对方网站不同的屏蔽规则,你只需要多加几个代理就可以了。

3.即使特定IP被屏蔽了,直接注销代理服务器就OK了。程序逻辑不需要改变。方法2.

有少数网站防范意识薄弱。可以伪装IP,修改X-Forwarded-for(好像是这个法术)。)可以绕过。

大部分网站,如果要经常抓取,通常需要更多的IP。我的首选方案是国外VPS搭配多个IP,通过默认网关切换实现IP切换,比HTTP代理效率高很多,估计大多数情况下也比ADSL切换效率高。方法3.

ADSL脚本,监控是否被屏蔽,然后不断切换ip

设置查询频率限制

正统的方式是调用这个网站提供的服务接口。方法4.

8年以上爬虫经验的人告诉你,国产ADSL才是王道。最好申请更多的线路,分布在多个不同的电信区域局。最好是跨省市。自己写断网重拨组件,自己写动态IP追踪服务,重置远程硬件(主要针对ADSL猫防止其停机),分配其他任务,恢复数据,问题不大。我的已经稳定运行好几年了,妥妥的!方法5.

1用户代理伪装和轮换

2使用代理ip和轮换

3 cookies处理,部分网站对登录用户的政策更宽松。

友情提示:考虑爬虫给别人网站带来的负担,做一个负责任的爬虫3360)方法6.

尽可能模拟用户行为:

1.用户代理经常改变;

2.将访问时间间隔设置得更长,并将访问时间设置为随机数;

3.访问页面的顺序也可以随机来到方法8.

网站屏蔽一般是根据单位时间内对特定IP的访问次数。

我把收集的任务按照目标站点的IP分组,通过控制每个IP在单位时间内发送的任务数量来避免被阻塞。当然这个前提是你收集了很多网站。如果只收藏一个网站,只能通过多个外部IP来实现。方法9.

1、控制履带的压力;

2.可以考虑使用代理访问目标站点。

-降低捕获频率,设置更长的时间,并使用随机数作为访问时间。

-频繁切换用户代理(模拟浏览器访问)

-多页数据,随机访问然后抓取数据

-更改用户IP

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。