program

简述爬虫反扒机制和爬虫应对策略

说到爬虫,对于大多数互联网人来说,已经不再陌生,爬取公开的信息已经成为了十分有价值的工程,数据对于个人和企业来说,其价值无法估量。因为数据和信息的巨大价值,其源头不再对数据放任不管,而是采取了重重的关卡来限制某些爬虫程序对于数据大量的挖掘,下面列举一下常见的反爬手段。

IP地址反爬

说到ip地址,每台可以访问互联网的设备都会拥有一个IP地址,不管是ipv4还是ipv6,都会精确记录我们的访问网站的request信息。如果一个ip地址对于某一个网站就行持续性的快速访问,那么系统会识别出这个ip地址可能是爬虫程序,下一步对于这个ip地址进行封禁,最后我们的设备将请求不到想要的数据。

那么,我们如何应对呢?通过购买ip,通过大量不重复的ip地址,我们起码不会在ip方面被系统发现。市场上有大量的ip供货商,知名的有 芝麻代理、阿布云等等,而我用的蚂蚁代理,通过代理服务器可以做的快速的请求ip地址,而不是通过每次请求一组ip的形式(比较缓慢,加钱的话数量提升,但是太贵)。

最后,我们可以通过 https://httpbin.org/ip 来测试我们的请求IP是否改变。

动态页面反爬

有很多页面,我们请求成功之后,却发现它只有一些html,没有所需要的数据,这是因为它通过ajax或者vue这样的大前端框架生成的所有内容,对于这些十分棘手的程序,我们需要通过对于数据API接口进行分析,这些数据都是通过json格式传输的,但是有些通过js加密了,我们还要破解这些接口,十分的艰辛。有一种快捷的办法,通过selenium或者puppeteer这样框架可以通过浏览器对这些动态生成的内容就行渲染并操控浏览器,也是可以获取数据的。

Headers字段验证

这里的头字段,包括user-agent、refer和其他的特殊字段,首先我们要伪装自己的请求,让自己像通过浏览器访问的网站,这里提供一些user-agent,大家可以在爬虫中使用。

'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
              'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
              'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
              'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0',
              'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)',
              'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',
              'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
              'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
              'Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
              'Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11',
              'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
              'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)',
              'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11'

另外refer参数也是一种重要的考量,refer是请求的来源,一般来说,某些网页通过特有的来源才能请求到的,不带refer是获取不了正确的数据的。

爬虫讨论组

有喜欢研究或者以爬虫为工作内容的同学,可以加入我的爬虫讨论组一起研究攻克难题。

方法 点击页面最下方的qq图标,和我私聊,我拉你入群

博客上线第一天!wordpress部署和使用技巧分享

上一篇

免费小说API接口,可用于小说网站或个人阅读

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

分类

关注公众号

微信扫一扫