购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.5 扩展阅读

3.5.1 常见的反爬机制与解决方案

网络爬虫(又被称为网页蜘蛛、网络机器人)是一种按照一定规则,自动抓取互联网信息的程序或者脚本。人们可能会使用爬虫获取各行业的数据,新闻平台上的新闻、评论,社交媒体中的文章数据,等等。各网站的开发人员为了约束这种行为,会采取各种手段去防止爬虫。下面将罗列出常见的反爬机制以及解决方案。在此也提醒读者,使用爬虫应注意遵守相关的法律法规,以免引起纠纷。

Headers检测。 对用户携带的Headers进行检测,是最常见的反爬策略之一。Headers是区分浏览器行为和机器行为中最简单的一种方法。Headers里常见的字段有User Agent、Cookie、Referer等。相应的解决措施:通过审查元素或者开发者工具获取相应的Headers,然后把相应的Headers传输给Python的Requests,这样就能很好地绕过相关反爬机制。

IP封禁。 由于爬虫是通过程序来自动化爬取页面信息的,因此其单位时间的请求量较大,且相邻请求时间间隔较为固定,这时就基本可以判断此类行为系爬虫所为,此时网站方即可在服务器上对异常IP进行封锁。相应的解决措施:使用IP池变换不同的IP发起请求。

验证码反爬。 网站还可能设置验证码图片,这些验证码图片掺杂了噪点、干扰线等,以此来起到反爬作用。相应的解决措施:如果验证码图片较为简单,可以使用一些OCR(光学字符识别)工具识别结果。若验证码较为复杂,可以借助打码平台识别验证码。

JavaScript渲染。 JavaScript渲染其实就是对HTML页面进行修改。比如有一些网页本身没有返回数据,数据是经过JavaScript动态加载之后添加到HTML中的,若直接使用爬虫获取数据,则是一堆人类无法识别的乱码。相应的解决措施:通过阅读网站JavaScript源码,找到关键的渲染代码,再使用Python实现,或者通过Selenium库直接模拟浏览器环境。 z/gcfSejXvXpWAFJKCF+sH3K7cYnGht6XEG67hjsmohT5gWcMGS3T00OSRq+AQWF

点击中间区域
呼出菜单
上一章
目录
下一章
×