python有哪些防爬虫/反爬虫的策略方法?

10个月前 (07-22 16:26)阅读96回复0
Python
Python
  • 注册排名3
  • 经验值0
  • 级别作者
  • 主题0
  • 回复0
楼主

  随着网络爬虫技术的普及,互联网中出现了越来越多的网络爬虫,既有为搜索引擎采集数据的网络爬虫,也有很多其他的开发者自己编写的网络爬虫。对于一个内容型驱动的网站而言,被网络爬虫访问是不可避免的。

  尽管网络爬虫履行着Robots协议,但是很多网络爬虫的抓取行为不太合理,经常同时发送上百个请求重复访问网站。这种抓取行为会给网站的服务器增加巨大的处理开销,轻则降低网站的访问速度,重则导致网站无法被访问,给网站造成一定的压力。

  因此,网站管理员会根据网络爬虫的行为特点,从来访的客户端程序中甄选出网络爬虫,并采取一些防爬虫措施来阻止网络爬虫的访问。与此同时,网络爬虫会采取一些应对策略继续访问网站,常见的应对策略包括添加User-Agent字段、降低访问频率、设置代理服务器、识别验证码,关于这几种应对策略的介绍如下。

  1.添加User-Agent字段

  浏览器在访问网站时会携带固定的User-Agent(用户代理,用于描述浏览器的类型及版本、操作系统及版本、浏览器插件、浏览器语言等信息),向网站表明自己的真实身份。

  网络爬虫每次访问网站时可以模仿浏览器的上述行为,也就是在请求网页时携带User-Agent,将自己伪装成一个浏览器,如此便可以绕过网站的检测,避免出现被网站服务器

  直接拒绝访问的情况。

  2.降低访问频率

  如果同一账户在较短的时间内多次访问了网站,那么网站运维人员会推断此种访问行为可能是网络爬虫的行为,并将该账户加入黑名单以禁止其访问网站。为防止网站运维人员从

  访问量上推断出网络爬虫的身份,可以降低网络爬虫访问网站的频率。不过,这种方式会降低网络爬虫的抓取效率。为了弥补这个不足,可以适当地调整一些操作,如让网络爬虫每抓

  取一次页面数据就休息几秒,或者限制每天抓取的网页的数量。

  3.设置代理服务器

  网络爬虫在访问网站时若反复使用同一IP地址,则极易被网站识别身份后屏蔽、阻止、封禁等。此时可以在网络爬虫和Web服务器之间设置代理服务器。有了代理服务器之后,网

  络爬虫会先将请求发送给代理服务器,代理服务器再转发给服务器,这时服务器记录的是代理服务器的IP地址(简称代理IP),而不是网络爬虫所在设备的IP地址。

  互联网中有一些网站提供了大量的代理IP,可以将这些代理IP进行存储,以备不时之需。不过,很多代理IP的使用寿命非常短,需要通过一套完整的机制校验已有代理IP的有效性。

  4.识别验证码

  有些网站在检测到某个客户端的IP地址访问次数过于频繁时,会要求该客户端进行登录验证,并随机提供一个验证码。为了应对这种突发情况,网络爬虫除了要输入正确的账户密

  码之外,还要像人类一样通过滑动或点击行为识别验证码,如此才能继续访问网站。由于验证码的种类较多,不同的验证码需要采用不同的技术进行识别,具有一定的技术难度。


本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。

本文地址:https://www.pyask.cn/info/33.html

0
回帖

python有哪些防爬虫/反爬虫的策略方法? 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息