-
32025年5月
-
262025年4月
-
272025年3月
-
282025年2月
-
162025年1月
-
282024年4月
-
302024年3月
-
292024年2月
-
312024年1月
-
312023年12月
-
302023年11月
-
312023年10月
-
302023年9月
-
312023年8月
-
352023年7月
-
312023年6月
-
312023年5月
-
302023年4月
-
312023年3月
-
282023年2月
-
312023年1月
-
312022年12月
-
302022年11月
-
312022年10月
-
302022年9月
-
312022年8月
-
322022年7月
-
292022年6月
-
322022年5月
-
302022年4月
-
332022年3月
-
312022年2月
-
372022年1月
-
382021年12月
-
382021年11月
-
402021年10月
-
432021年9月
-
372021年8月
-
442021年7月
-
442021年6月
-
432021年5月
-
342021年4月
-
312021年3月
-
292021年2月
-
352021年1月
-
422020年12月
-
402020年11月
-
482020年10月
-
522020年9月
-
852020年8月
-
752020年7月
-
802020年6月
-
782020年5月
-
772020年4月
-
432020年3月
-
362020年2月
-
452020年1月
-
562019年12月
-
712019年11月
-
612019年10月
-
562019年9月
-
532019年8月
-
362019年7月
-
362019年6月
-
382019年5月
-
402019年4月
-
352019年3月
-
342019年2月
-
442019年1月
-
392018年12月
-
402018年11月
-
392018年10月
-
392018年9月
-
452018年8月
-
452018年7月
-
392018年6月
-
512018年5月
-
492018年4月
-
342018年3月
-
282018年2月
-
482018年1月
-
732017年12月
-
7292017年11月
-
7442017年10月
-
2892017年9月
-
12017年8月
爬虫的固定套路也就那么多,但反爬虫的套路却因不同网站而不同。所以,不同网站的反反爬虫策略也不一样,这也是令诸多爬虫工程师头疼的问题,不能一劳永逸,只能见招拆招,同时还不能影响爬虫效率。
一、加上headers参数
加headers参数是最基础的爬虫手段,一般都会收集一堆User-Agent,然后随机使用,这样就可以伪装成自然的浏览器用户,蒙混过第一关。反爬策略严格一点的,还得加上其他的参数,比如cookie等。
二、访问页面随机延时
大规模爬虫会访问到很多网页,每个页面的访问时间不能一样,这样很容易被识别。不同的用户访问习惯不同,所用的时间也不相同,所以,为了伪装的更逼真,每访问完一个页面,应该随机延时1-10秒,这样就无迹可寻了。
三、使用代理IP
大规模爬虫使用代理IP是必须的,不然将寸步难行。使用代理IP有两点好处:一是可以降低单IP单位时间内的访问频率,单IP的访问总次数,降低被封危险;二是即使IP被封了,还可以用其他的代理IP继续进行爬虫工作。
四、验证码处理
有的网站当访问次数达到其设定的阈值时就会出现验证码,或者本身就需要验证码登陆,虽然很多编程语言都有自动识别图像的包,但也只能识别最基础最简单的,对于大部分网站的验证码都无能为力。除非必要,尽量不要去触发验证码,万一触发了,也只能找人工打码平台帮忙了。
五、JS代码处理
上面几种反爬策略还好,可以想办法应付,然而最丧心病狂的反爬虫策略莫过于JS代码了,逻辑十分复杂深奥,简直不让人活,遇到这种JS策略,也只能模拟浏览器了。模拟浏览器其实就是一种自动的浏览器访问,与正常的用户访问很类似,所以可以跳过大部分的反爬机制,因为装得实在太像正常用户;不过缺点也很明显,就是慢。
当然,反爬虫策略不仅仅是以上几种,各种各样的反爬机制只有在爬取了各种各样的网站后才能见识到,只要身经百战,何惧反爬机制,破解了各种各样的反爬策略后,才会有一种“与天斗,与人斗,与反爬虫斗,其乐无穷”的境界。