几个复杂的反爬虫策略和应对方法
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 文件返回给浏览器,从而绕过这个限制。

相关内容

热门资讯

20年后的家乡五年级作文【优... 20年后的家乡五年级作文 篇一我热爱我的家乡,它是一个美丽的地方,拥有丰富的自然资源和独特的文化。而...
小学五年级母爱的作文600字... 小学五年级母爱的作文600字 篇一母爱是世界上最伟大的力量。她是我们生命中的太阳,无时无刻都在给予我...
记一件难忘的事优秀作文(精彩... 记一件难忘的事优秀作文 篇一初中时期,我参加了一次社会实践活动,这是我一生中难以忘怀的经历。那是一个...
我的新学期打算五年级作文(优... 我的新学期打算五年级作文 篇一:我的新学期打算新学期开始了,我对这个学期充满了期待和憧憬。在这个学期...
五年级下册语文第七单元作文:... 五年级下册语文第七单元作文:我的同学 篇一我的同学我班上有很多可爱的同学,他们都是我的好朋友。他们个...
访谈录作文五年级【精简6篇】 篇一:访谈录作文五年级昨天,我采访了我们班的英语学霸——小明。他的英语成绩一直是全班第一,让我们都非...
我就是我自己的神五年级作文(... 我就是我自己的神五年级作文 篇一我是一个五年级的小学生,我的名字叫小明。今天,我要告诉大家一个重要的...
五年级作文一件难忘的事800... 篇一:五年级作文一件难忘的事800字第一篇内容记忆犹新的一天,我和我的好朋友小明一起去参观了动物园。...
奶奶要学“话”五年级学生作文... 奶奶要学“话”五年级学生作文 篇一奶奶要学“话”我有一个特别可爱的奶奶,她今年已经七十多岁了,但是她...
五年级漂流作文600字(经典... 五年级漂流作文600字 篇一:漂流的奇遇我和同学们在学校举行了一次难忘的漂流活动。这是我们学校的传统...