爬虫又称网络爬虫,是一种能够自动抓取目标网站信息的程序或脚本。
现在很多行业都可以看到爬虫,比如抓取目标网站的信息,排名等信息。但是很多网站不愿意让自己的信息白白被获取,于是反爬虫措施应运而生。此时,爬虫和反爬虫往往会上演精彩的攻防战。然而,小白,一个初学者,在爬行时经常被一些简单的反爬虫所困。所以在这里,作为一个曾经的码农,我给大家讲一些绕过反爬虫的常用解决方案。

1.对于访问频率限制
方法:利用python的sleep生成随机时间。大概意思是用sleep来实现爬虫的每一个间隔都是随机的。这种方法可能会增加爬虫的时间,但可以通过使用多个代理IP或动态IP来解决。
2.对于UA限制
方法:可以建立一个随机列表,将大量的UAs放入列表中,这样可以有效的防止UAs被限制,但是UAs的数量可能需要多准备一些。

3.用于动态呈现限制。
方法:动态渲染是Javascript生成的请求。在这里,我们可以尝试使用burpsuite来拦截请求,然后分析其规则并封装请求。
4.对于IP限制
方法:当反爬程序检测到同一IP的用户访问频率过高时,会直接锁定并限制其IP。所以只需要准备大量的备选IP,但更推荐使用动态IP,效率会更高。

5.对cookie的限制
方法:使用selenium+webdriver获取每次访问所需的cookies,下次访问时带上。还可以使用urllib2的cookie机制。
6.针对帧限制
方法:这种反爬措施一般是在网页中嵌入几层框架,链接到其他无效页面,再插入几层框架,让你无法提取到有效的网址。这时候可以查看网页的源代码,一层一层的找到有效页面所在的目录,然后直接请求有效页面。
说了这么多,我想你对常见的绕过爬虫爬行的方法已经有了大概的了解。其实爬虫最常见的情况就是IP受限,尤其是海外业务需要使用海外IP的时候。我目前用的是国内的海外IP代理,叫Smartproxy,各方面都还不错,包括加一个,纯度和可用性都很高。最后,希望这篇文章或多或少能给你带来一些帮助。如果你觉得这段内容还有什么想了解的,欢迎来评论区问我!


