爬虫“学前班”,记住这些不踩坑( 二 )


应对措施:轻中度混淆或者混淆的代码 , 可以通过阅读混淆后的代码 , 梳理加密逻辑后扣取可运行的 Js 代码 , 使用 Python 库调用完成加密参数的生成;重度混淆使用 AST 语法树还原混淆的代码 , 去除无意义的垃圾代码 , 还原清晰的加密逻辑后使用 Python 库调用完成加密参数的生成 。
推荐工具:AST、PyExecJS
4.APP 反爬虫
都2020年了 , 目前通过应用市场下载的 APP还有不加壳的吗?除了加壳防护外 , 常见的 APP 也应用了单向或双向证书验证 , 简单的中间人攻击已经无法抓到 APP 的数据包 , 学习 APP 逆向已经势在必行 。
应对措施:APP 逆向需要学习的内容非常多 , 这里只针对无法抓到 APP 包做简单的总结(推荐工具:Frida、Xposed、IDA、jadx、Charles):
【单向认证和双向认证】
单向验证的情况是客户端校验证书 , 校验出错就无法访问
双向认证的情况是客户端校验证书的时候 , 服务端也要校验证书 , 有一端证书校验失败都无法访问数据 。 缺点是服务器的压力比较大
处理方法:一般是使用 JustTrustMe , 原理是通过 Xpose Hook 校验的 API 。
【APP不走代理—如何确定 APP 不走代理?】
(1)关闭代理服务器(fiddler等代理抓包工具)(2)使用手机访问浏览器网页访问失败 , 确定代理失效(3)使用APP访问 , 正常访问确定 APP 不走代理访问网络
处理方法:更换不基于代理类型的抓包工具(HTTP Analyzer V7--缺点没办法用在真机、HTTP Debug Pro、手机端的HttpCanary-基于VPN);hook-先反编译看看他是使用了那个框架 , 然后针对性地hook-菜鸡劝退;iptables 强制拦截转发
【代理检测的APP】
挂上代理之前APP访问正常 , 挂上代理之后APP无法使用显示网络出错等情况
(1)代理检测(hook 代理检测的方法)(2)证书检测(用 JustTrustMe )
【双向认证的APP】
双向认证的情况是客户端校验证书的时候 , 服务端也要校验证书 , 有一端证书校验失败都无法访问数据 。
不过在双向认证的APP中要做到双向验证 , 在APP中一般要配置好服务器端验证的证书 , 所以在客户端中我们可以找到一个服务端的证书 , 我们只要在 Fiddler 中配置好这个证书就可以请求了 。
ps:证书一般带有密码 , 需要反编译找到密码 , 之后导入至系统当中 , 再从系统中导出为 .cer 证书格式 , 之后在 FiddlerScript 中配置即可 。
分布式爬虫都是什么?如果你已经学习了如何编写工程化爬虫 , 并对它有一定的心得 , 那么你已经开始对爬虫架构有一定的心得了 。
而分布式爬虫看着概念吓人 , 其实往简单的看就是将单机的爬虫分布到多台机器 , 主要的重点在于消息阻塞处理 , 日志告警、数据完整性校验等等问题 。
针对亿级以下的舆情数据 , 可以试着学习 Scrapy + Redis + MQ + Celery 这样的组合 , 足以应对 。
如果是针对垂直领域的数据抓取 , 可以将重心放在如果快而稳地获取数据上 , 毕竟垂直领域的数据抓取 , 爬虫与反爬虫的对抗是最激烈的 。
爬虫全套视频教程后台私信小编01即可
PS:如遇到解决不了问题的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答私信即可加入