常见反爬虫手段和高级爬虫的写法

反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。关键也在于批量。


关于反爬虫,看这一篇就够了https://segmentfault.com/a/1190000005840672

(1)传统反爬虫手段:

1、后台对访问进行统计,如果单个IP访问超过阈值,予以封锁。

有两个缺陷,一个是非常容易误伤普通用户,另一个就是,IP其实不值钱,几十块钱甚至有可能买到几十万个IP。

2、后台对访问进行统计,如果单个session访问超过阈值,予以封锁。

这个看起来更高级了一些,但是其实效果更差,因为session完全不值钱,重新申请一个就可以了。

3、后台对访问进行统计,如果单个userAgent访问超过阈值,予以封锁。

这个是大招,类似于抗生素之类的,效果出奇的好,但是杀伤力过大,误伤非常严重,使用的时候要非常小心。至今为止我们也就只短暂封杀过mac下的火狐。

4、以上的组合

组合起来能力变大,误伤率下降,在遇到低级爬虫的时候,还是比较好用的。

5、其他
css偏移/面包屑导航栏/访问频率/验证码。。。。

(2)高级爬虫:

分布式:防止对方封IP。封IP是终极手段,效果非常好,当然,误伤起用户也是非常爽的。

模拟JavaScript:如果对方没有反爬虫,你完全可以直接抓ajax本身,而无需关心js怎么处理的。如果对方有反爬虫,那么javascript必然十分复杂,重点在于分析,而不仅仅是简单的模拟。

PhantomJs:极端例子。效率是硬伤。此外PhantomJs也是可以被抓到的

Guess you like

Origin blog.csdn.net/weixin_55579895/article/details/120581376