栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何解决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反爬虫的办法,网络上的解决也是五花八门,这里小编分享了自己的一些理解,希望能对一些有需要的小伙伴有所帮助,更多方法我们也可以不断交流。更多Python学习指路:PyThon学习网教学中心。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/11743.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号