如何解决python反爬虫限制访问

952次阅读
没有评论

如何解决python反爬虫限制访问

我们想要获取一些大量数据,经常会被拦截住,这是因为访问太频繁的原因,一旦账号不能使用又会带来很大的麻烦。针对于这种情况,小编想了两个应对的方法,一个是网站方面,另一个是地址方面的。本篇会着重于地址方面的方法介绍,相信大家对于这方面的方法使用上会更加频繁,具体的分析请往下看:

单台机器,单个IP大家都明白,短时间内访问一个网站几十次后肯定会被屏蔽的。每个网站对IP的解封策略也不一样,有的1小时候后又能重新访问,有的要一天,有的要几个月去了。

突破抓取频率限制有两种方式,一种是研究网站的反爬策略。有的网站不对列表页做频率控制,只对详情页控制。有的针对特定UA,referer,或者微信的H5页面的频率控制要弱很多。

另一种方式就是多IP抓取。

多IP抓取又分IP代理池和adsl拨号两种,我这里说adsl拨号的方式,IP代理池相对于adsl来说,我觉得收费太贵了。要稳定大规模抓取肯定是要用付费的,一个月也就100多块钱。adsl的特点是可以短时间内重新拨号切换IP,IP被禁止了重新拨号一下就可以了。这样你就可以开足马力疯狂抓取了,但是一天只有24小时合86400秒,要如何一天抓过百万网页,让网络性能最大化也是需要下一些功夫的,后面我再详说。至于有哪些可以adsl拨号的野云主机,你在百度搜”vps adsl”,能选择的厂商很多的。大多宣称有百万级IP资源可拨号,我曾测试过一段时间,把每次拨号的IP记录下来,有真实二三十万IP的就算不错了。 选adsl的一个注意事项是,有的厂商拨号IP只能播出C段和D段IP,110(A段).132(B段).3(C段).2(D段),A和B段都不会变,靠C,D段IP高频次抓取对方网站,有可能对方网站把整个C/D段IP都封掉。C/D段加一起255X255就是6万多个IP全都报废,所以要选拨号IP范围较宽的厂商。 这些都是野云主机,质量和稳定性本就没那么好。只有多试一试,试的成本也不大,买一台玩玩一个月也就一百多元,还可以按天买。

上面为什么说不用付费的IP代理池?

因为比adsl拨号贵很多,因为全速抓取时,一个反爬做得可以的网站10秒内就会封掉这个IP,所以10秒就要换一个IP,理想状况下一天86400秒,要换8640个IP。如果用付费IP代理池的话,一个代理IP收费4分钱,8640个IP一天就要345元。 adsl拨号的主机一个月才100多元。adsl拨号Python代码怎么拨号厂商都会提供的,建议是用厂商提供的方式,这里只是示例:windows下用os调用rasdial拨号:

import os
# 拨号断开
os.popen('rasdial 网络链接名称 /disconnect')
# 拨号
os.popen('rasdial 网络链接名称 adsl账号 adsl密码')

 

linux下拨号:

import os
# 拨号断开
code = os.system('ifdown 网络链接名称')
# 拨号code = os.system('ifup 网络链接名称')

 

关于应对python反爬虫的办法,网络上的解决也是五花八门,这里小编分享了自己的一些理解,希望能对一些有需要的小伙伴有所帮助,更多方法我们也可以不断交流。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-23发表,共计1324字。
新手QQ群:570568346,欢迎进群讨论 Python51学习