注册
登录
提问时间:2019/8/16 16:43:46    楼主:未知网友   阅读量:44

很多朋友有这样的想法:有了优质的代理IP,爬虫就可以畅通无阻了,若是爬虫不能好好工作,那么就是代理IP的锅。他们认为,优质的代理IP等于好的爬虫策略,有了优质的代理IP就不需要再管爬虫策略了。

独享IP池


其实,这种想法是片面的,使用代理IP只是爬虫策略中的一种,具体的爬虫策略要根据目标网站的反反爬策略来制定,也可以叫做反反爬虫策略。

一般的反爬虫措施有以下这些:

一、代码层面限制需要登录访问,一天仅可以访问一定数量的页面,未登录状态仅可以查看可数的几个页面,例如房源信息网站,一天查看 60+ 的房源详情页面已经很多了,更多可以就有恶意了。这样的限制对于爬虫方来说,需要筹备很多账号进行爬取。当然在彻底的限制之外,可以限制访问超过数量弹出验证码,验证之后才可以继续访问,这样至少不会让少部分真实用户无法访问。

二、提前获取 IP 代理池的 IP 列表,直接防火墙层面的拉黑,能高端避免一些问题。

三、将常见的爬虫头信息全部 Nginx 或者代码层面拉黑,据说一些大网站把 python 的几个常见爬虫头信息全部拉黑了,提升基础爬虫的代码成本。

四、高端反爬虫是每隔几小时切换页面代码或者接口数据结构,记得某宝是这样做的,对于爬虫方来说,可能刚刚写好爬这种类型的代码,然后整体页面代码和数据结构用了新一套,很高阶的反制措施了。

五、数据扰乱:每一页有一些加解密规则,或者每页有不同的扰乱数据,你抓取到的极有可能是包含一些假数据,或者加密数据,也算是增加了爬虫成本。例如网页中也可以增加一些关键性的样式或者名称一致的隐藏域,偶数页不出现这些隐藏域,让爬虫不好找的关键元素。

所以,爬虫策略不仅仅是使用优质的代理IP,还需要根据目标网站的反爬策略做出实际分析,制定专用的反反爬虫策略,当然优质的代理IP也必不可少。