原文连接: 何晓东 博客python
没有绝对的反爬虫措施,只能提升爬虫爬取的成本。
爬虫措施:
git
- 不设防的网站,直接爬取,不作任何假装
- 基础防备的网站,爬取过程当中增长
time.sleep(n)
进行休眠一下,降级爬取频次,防止被限制。再能够每次爬取切换 header 头信息,假装成多个终端发起的请求
- 须要登陆的状况下,须要多个用户帐户,爬取过程当中切换 cookie 信息,模拟不一样用户在请求。
- 使用 IP 代理池,切换 IP,越太高级限制。
python 爬虫相关的有几个实现越过限制的包:fake_useragent proxy_list 等,假装的越像真实用户越爬取成功率高。github
反爬虫措施:
浏览器
- Nginx 层面进行频次限制,能够参考 Nginx http 资源请求限制,至于限制的 key 为浏览器头/IP/登陆用户,能够根据需求进行设置。
- 代码层面限制须要登陆访问,一天仅能够访问必定数量的页面,未登陆状态仅能够查看可数的几个页面,例如房源信息网站,一天查看 60+ 的房源详情页面已经不少了,更多能够就有恶意了。这样的限制对于爬虫方来讲,须要筹备不少帐号进行爬取。固然在完全的限制以外,能够限制访问超过数量弹出验证码,验证以后才能够继续访问,这样至少不会让少部分真实用户没法访问。
- 提早获取 IP 代理池的 IP 列表,直接防火墙层面的拉黑,能高端避免一些问题,免费 IP 代理池记得有网站,须要拉黑在本身获取。
- 将常见的爬虫头信息所有 Nginx 或者代码层面拉黑,听说一些大网站把 python 的几个常见爬虫头信息所有拉黑了,提高基础爬虫的代码成本。
- 高端反爬虫是每隔几小时切换页面代码或者接口数据结构,记得淘宝是这样作的,对于爬虫方来讲,可能刚刚写好爬这种类型的代码,而后总体页面代码和数据结构用了新一套,很高阶的反制措施了。
- 数据扰乱:每一页有一些加解密规则,或者每页有不一样的扰乱数据,你抓取到的极有多是包含一些假数据,或者加密数据,也算是增长了爬虫成本。例如网页中也能够增长一些关键性的样式或者名称一致的隐藏域,偶数页不出现这些隐藏域,让爬虫很差找的关键元素。
以上是本身想到的一些措施,谨记如今乱爬是违法的,别爬取一时爽,三年起步了。cookie
© 原创文章,若有问题请联系 hexiaodong1992@outlook.com 谢谢!数据结构
最后恰饭 阿里云全系列产品/短信包特惠购买 中小企业上云最佳选择 阿里云内部优惠券网站