反爬虫机制处理
作者:互联网
浏览器的动态加载
如果爬取的网页是动态网页,数据就是ajax动态加载的,如果ajax没有参数验证的话,那么就简单了,只是从解析html
变成了解析json
。
如果ajax需要参数验证的话,需要一定的 JS 逆向能力。
IP封禁
当我们爬取的速率比较快的时候,就可能被对方拉黑 IP, 这时候有可能是临时性拉黑,有可能是持续性拉黑,有可能是永久性拉黑。
这时,我们就需要进行IP代理了。
代理 IP 按照质量和来源又分为几类:
比较垃圾的公用 IP
比较稳定的机房 IP
民用网段 IP
网上有一些站点会提供一些免费的代理 IP, 估计他们都是扫来的。这些 IP 可能都有无数的程序在扫描,使用他们,所以可以说是公用的 IP 了。通过收集验证这些 IP, 可以构造一个代理池子。如果实在很穷,或者抓取量不是很大,可以用这种 IP. 虽然这些 IP 特别慢,失败率特别高,总比用自己的一个出口 IP 要好一些。
比较稳定的机房 IP. 这种一般就需要花钱买了,稍微想多抓点数据,一个月 100 那是起步。对付大多数的抓取已经足够了。
对于有一些变态的站点,他们甚至会验证来源 IP 的用途。比如说一看你 IP 来自阿里云机房,啥也不说直接拉黑。这时候就需要所谓的"民用 IP"了。这种有专门的厂商和 App 合作来提供民用网络出口,也可以自己买 ADSL 机器自动拨号搭建,反正成本都是非常非常高了,一个月至少 1000 起步了。
带上账户和验证码
IP毕竟是匿名的,对于一些数据比较敏感的网站来说,他们可能会要求你登陆后才允许访问。
我们可以多注册或购买一些帐号,通过加cookie
的方式进行爬取
比需要账户稍微弱一点的限制是验证码,图文验证码现在都不是问题了,直接打码平台或者训练个模型都很简单。
这里需要注意的是,请分辨一下你要爬的网站是每次请求必须验证码,还是在封禁 IP 之前出验证码。如果不是每次请求都出验证码,直接加大代理池吧,没必要抠这些东西。
不过这里需要特别注意的一点是:一定要考虑清楚其中的法律风险,需要账户访问已经说明这不是公开数据了,可能会触发对方的商业利益或者触犯用户的隐私,一定三思而后爬。
拓展:js加密的解析和处理方法
相关案例:https://blog.csdn.net/lsh19950928/article/details/81585881
标签:需要,处理,IP,爬虫,验证码,爬取,拉黑,机制,代理 来源: https://blog.csdn.net/z1360408752/article/details/113028049