06-网络抓取时的人类化方法
[toc]
6.3.1 网络抓取时的“人类化”方法
一些网站通过特定行为检测网络爬虫。在第5章中,我们介绍了如何通过避免点击隐藏链接的方式避免进入蜜罐。下面再给出一些提示,以使在线抓取内容时的表现更像人类。
- 利用请求头: 我们介绍的大部分抓取库都可以改变请求头,允许你修改类似
User-Agent、Referrer、Host以及Connection等内容。此外,当使用类似Selenium这样基于浏览器的抓取器时,你的爬虫看起来更像是使用正常请求头的普通浏览器。你可以通过打开浏览器工具,在Network选项卡中查看最近的请求,来了解浏览器正在使用的请求头是什么。这可能会让你更好地了解该站点接受的请求头是什么。 - 添加延时: 一些爬虫检测技术使用时间确定表单填写速度是否过于迅速,或是页面加载后的链接点击速度是否过快。为了表现得更像人类,可以在与表单交互时添加合适的延时,或是使用
sleep在请求之间添加延时。这同样也是礼貌的抓取网站的方式,可以避免网站过载。 - 使用会话和cookie: 正如我们本章所介绍的,使用会话和cookie可以帮助你的爬虫更容易地定位网站,并且可以让你表现得更像是普通浏览器。通过在本地保存会话和cookie,你可以选择暂离时的会话,使用已保存的数据恢复抓取。