栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

Python爬虫之Js逆向案例(6)-有道翻译

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫之Js逆向案例(6)-有道翻译

Python爬虫之Js逆向案例(6)-有道翻译
声明:有道翻译加密逆向分析仅用于研究和学习,如有侵权,可联系删除

大家好,距离上次分享js逆向案例已经有一个月了,在这期间每次在快要揭秘出来时、整理文章的时发现某乎的加密又又又更新了、、、,导致近期长时间没有更新文章了。同时也收到了很多童鞋的催更,这里说一下哈,并不是我忘记了,或者懈怠了,只是一直在从头逆向某乎而已、、、为了继续更新逆向100例,我决定先暂停某乎的文章输出,等稳定了在案例一下,不然今天扣的代码明天又不能用了、、、,还是先分享其他平台的案例吧,这里就不多说了哈!!!

今天的案例对象是有道在线翻译,如果有同学想做一个类似划词翻译的浏览器插件的,或者开发一个vscode插件练手,可以通过本次分享get到一些经验。

为了照顾刚入门童鞋,文章每一步的分析过程尽可能的详细(有经验的同学可以选择感兴趣的地方快速预览)

下面会进行以下几步进行分析(下方演示过程全部使用chrome浏览器);

  1. 锁定关键接口;
  2. 锁定关键字段;
  3. 破解关键字段;
  4. python爬虫结果演示;
一.锁定关键接口

浏览器f12,打开调试面板,翻译窗口里输入内容后触发接口如下图:

高能总结:
1.勾选上图1.处的Preserve log,原因方便我们比对两次请求都有哪些字段是变化的,通常变化的字段就特别需要留意的,很有里面很有可能是加密字段。有的接口每次输入完之后页面的url内容也跟着变导致页面刷新,如果不勾选的话,会很难比对每次请求变化的内容。(有道的这个貌似并不会导致页面刷新,所以本次勾不勾看不出效果,可以去知乎的搜索试试这个方法就很明显了);
2.通常比对变化字段的地方有上图中的3.处的Payload和Headers两个地方;

有经验的童鞋可能一眼就能猜出来大概那些是加密字段。

二.锁定关键字段

通过上面的比对,发现每次变化的字段有4个,分别是:salt|sign|lts|bv, headers中本次没有发现可疑字段。其中加密字段感觉有两个sign&bv,如下图:

大概的字段已经锁定,接下来就分析这俩字段;

三.破解关键字段

老规矩,先查询一下sign字段出现的位置,流程如下图:

把所有对sign字段赋值的地方都打上断点,如上图:

输入内容,断点捕获,如下图,很容易发现salt|sign|lts|bv值是怎么来的,

因此,
ts: 13位的时间戳
salt:ts+1位随机数
bv: md5(navigator.appVersion)
sign: md5("fanyideskweb" + 要翻译的内容 + salt + "Ygy_4c=r#e#4EX^NUGUc5")

其它字段都是除了要翻译的内容字段i都是定值;

高能总结:
1.md5加密算法可能会被重写,我们需要先确保md5有没有被改写,可以先去网上在线加密一下,看看和调试的时候是否相同,如果不同还需要我们把对应md5加密代码扣出来,这里巧了,验证后没有被改写,所以我就不单独演示扣md5了;

到这里关键字段基本算是理论破解完成了,是不是很简单!!!

四.python爬虫结果演示

如何快速的写python代码呢?这里推荐一个工具网站: 爬虫工具库,演示一下如何使用这个库,

  1. 在接口上右键,拷贝cURL,如下图:

  2. 打开这个链接 爬虫工具库,粘贴到这个curl转requests这里,如下图:

右侧会立即呈现对应python代码,复制出来,可直接运行,是不是很快就有了对应的python文件!

拿到转化后的python代码之后,我们还需要进行改造,把对应加密的东西给补上,就成了哦!

下面看结果演示:

有道逆向到此完!

下一节预计分享webpack逆向的案例!!!

后期会持续分享爬虫案例-100例,不想自己造轮子的同学可加入我的知识星球,有更多惊喜、技巧、高能总结等你哦!!!;

欢迎加入「python、爬虫、逆向Club」知识星球

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037111.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号