Python爬虫该怎么解决安全访问公开数据机制

作者:IPIDEA

2021-01-28 17:03:13

自互联网不断发展以来,爬虫与访问虫的战争从未停歇。今天IPIDEA代理给大家分享几个好用的python爬虫的访问虫策略,一起来看看吧。

 

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

 

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

 

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

 

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


*ipidea提供的服务必须在境外网络环境下使用

热门资讯