阿布云

你所需要的,不仅仅是一个好用的代理。

一些反爬虫的技术

阿布云 发表于

现如今因为搜索引擎的流行,网络爬虫已经成了很普及网络技术,除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都自己的搜索引擎,叫得出来名字得就几十种,就更不用说还有各种不知名的小小的爬虫了.对于一个内容型驱动的网站来说,受到网络爬虫的光顾是不可避免的.
一些智能的搜索引擎爬虫的爬取频率比较合理,对网站资源消耗比较少,但是很多糟糕的网络爬虫,对网页爬取能力很差,经常并发几十上百个请求循环重复抓取,这种爬虫对中小型网站往往是毁灭性打击,特别是一些缺乏爬虫编写经验的程序员写出来的爬虫破坏力极强,造成的网站访问压力会非常大,会导致网站访问速度缓慢,甚至有可能无法访问.
现在的网站一般会从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式.前两种比较容易遇到,所以大多数网站都从这些角度来反爬虫.第三种会有一些应用ajax的网站会采用,这样增大了爬取的难度,减少了初级爬虫的爬取麻烦,同时也不会阻止到一些搜索引擎的爬取.

通过Headers反爬虫从用户请求的Headers反爬虫是最常见的反爬虫策略.很多网站都会对Headers的User-Agent进行检测,还有一部分网站会对Referer进行检测(一些资源网站的防盗链就是检测Referer).如果遇到了这类反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Referer值修改为目标网站域名.对于检测Headers的反爬虫,在爬虫中修改或者添加Headers就能很好的绕过.