几个复杂的反爬虫策略和应对方法
admin
2021-01-30 00:12:27
0

自互联网不断发展以来,爬虫与反爬虫的战争从未停歇。今天天启IP给大家分享几个复杂的反爬虫策略,一起来看看吧~

几个复杂的反爬虫策略和应对方法

(1)数据伪装

在网页上,爬虫工作者可以监听流量,然后模拟用户的正常请求。在这种情况下,某些网站会对数据进行一些伪装来增加复杂度。例如,在某网站上展示的价格为 299元,在 DOM 树中是以 CSS 进行了一些伪装。要想得到正确的数值,必须对 CSS 的规则进行一些计算才行。在这种情况下,使用爬虫必须要非常小心,因为很可能目标网站进行改版后,规则已经发生了变化,抓取到的数据便会无效。

(2)参数签名

APP 通过加密算法对请求的参数进行运算,从而得到一个签名。这个签名通常和时间戳相关,并且在请求中附加上时间戳。在请求的参数固定的情况下,能够在一小段时间内生效。当请求发送到服务端后,服务端对参数、时间戳进行验证,比较签名是否一致。如果不一致,则判断为非法请求。获取 APP 端的加密算法一般较为困难,通常需要进行反编译才能获得加密算法。

(3)隐藏验证

更复杂的反爬虫的方式之一是,隐藏验证。例如,在网站的防护上,通过 JavaScript 请求一些特殊的网址,可以得到一些特定的令牌(token),这样每次请求时即可生成不同的令牌。甚至有些网站会在不可见的图片加上一些特殊的请求参数,从而识别是否是真正的浏览器用户。这种情况下,想直接获取 API 进行请求通常行不通或者非常困难,只能通过 Chrome Headless 等工具模拟用户的行为,从而规避这种情况。

(4)阻止调试

有一类反爬虫策略比较特殊,一旦打开浏览器的控制台界面,就会无限触发浏览器的 debugger 指令。网站在一个名为 leonid-tq-jq-v3-min.js 中给所有的构造函数都加上了 debugger 这个关键字,导致任何对象的生成都会触发调试器。这样做的目的是阻止意外的脚本或程序进行跟踪调试,从而保护代码。这种情况下,可以构建一个修改过的js文件,去掉debugger关键字,使用 mitmproxy 转发流量并拦截 leonid-tq-jq-v3-min.js,将改后的 js 文件返回给浏览器,从而绕过这个限制。

相关内容

热门资讯

介绍长城的英语作文(实用6篇... Introducing the Great Wall of ChinaArticle 1The Gr...
我的爱好英语作文 有关我的爱好英语作文(通用30篇)  在日常学习、工作或生活中,大家都经常看到作文的身影吧,借助作文...
英语课本剧表演小学作文300... 篇一:英语课本剧表演小学作文300字我校小学五年级的英语课程中,老师安排了一次精彩的英语课本剧表演活...
初二英语作文下册 初二英语作文下册  无论在学习、工作或是生活中,大家都不可避免地要接触到作文吧,借助作文可以提高我们...
四级英语作文万能句(精简3篇... 四级英语作文万能句 篇一How to Improve English Writing SkillsE...
初中英语作文【通用3篇】 初中英语作文 篇一:My Favorite HobbyMy favorite hobby is re...
6月英语四级作文【优质4篇】 6月英语四级作文 篇一The Importance of Learning a Second Lan...
微博的英语作文带翻译(通用3... 微博的英语作文带翻译 篇一Title: The Impact of Weibo on Modern ...
初中生英语作文,新概念二级词... 初中生英语作文,新概念二级词汇 篇一Title: My Favorite HobbyAs a mid...
自由的英语作文(通用6篇) 自由的英语作文 篇一Freedom is the essence of life. It is th...