python 爬虫+JS解密 打造python 在线翻译程序

大家好呀,由于疫情好久没更新文章啦!今天难得有空更新一个有意思的实战项目。

我是xu ,我一直在路上。

你将学到 JS 解密 + tornado 框架写get+ post 请求基础知识+python文件打包成exe 可执行文件。本章干货满满。

前几章已经讲过python2 JS 解密过程,今天讲python3 构造js解密,并且今天再来利用爬虫和tornado 框架打造实时翻译程序。
既然是 实时翻译 那我们先安排网易在线翻译,看能不能做到爬虫实时翻译,第一步我们先尝试写 网易翻译爬虫程序。网址:http://fanyi.youdao.com/

第一步我们在翻译框输入任意字符如:"我爱中国",F12后点击Network 在 XHR 菜单栏点击找http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 来我们看看都有什么参数提交,通过多次尝试 发现下图代表 要翻译的内容,salt、sign、ts、bv 等4个参数是必要参数那么这4个参数都怎么形成的呢,如果想做到实时翻译那么这4个字段 就要给他安排的明明白白,最直观的就是全局搜索,加断点调试,我们先搜索一下试试水,

image.png

通过搜索 'sign' 我们发现 下图 JS 加密部分,对比发现我们可以看到 salt、sign、ts、bv 这四个参数的加密方式,观察发现 ts 是当前时间戳、salt 是 ts+随机一位数字、bv 是md5 当前浏览器标识后的加密值、sign 是 'fanyideskweb' +'要翻译的内容'+ salt +'Nw(nmmbP%A-r6U3EUn]Aj' 这个字符串MD5之后的值、将到这里就特别简单了,我们有多种方式 构造这些参数,

image.png

第一种 :我们用python 自己生成这些参数
1、构造参数ts

ts = str(time.time()).replace('.', '')[0:13]

2、构造参数salt

salt = ts + str(random.randint(0, 10))

3、构造参数bv

bv = hashlib.md5('{}'.format( '你的浏览器标识').encode(encoding='UTF-8')).hexdigest()

4、构造参数 sign

sing = hashlib.md5(
        '{}'.format("fanyideskweb" + str(word) + salt + "Nw(nmmbP%A-r6U3EUn]Aj").encode(encoding='UTF-8')).hexdigest()

好了构造完成我们启动程序 试试效果:

image.png

哈哈哈非常简单的翻译程序就这样写好了,那么这样的程序我们适用不方便啊,借助tornado 异步框架在我本地访问 http://localhost:33863/index 然后输入想翻译的内容我们打造可视化在线翻译程序先上效果图:

image.png

python文件 打包成exe 文件非常简
首先安装Pyinstaller

pip install Pyinstaller 

第二步:

win +R 输入 CMD
然后进到 python 文件 所在目录
执行 Pyinstaller -F xxx.py

然后py文件同级目录下 会出现 如下文件夹,打卡即可看到 exe可执行文件。


image.png

由于涉及到网易在线翻译网站、安全问题代码就不全部贴出来了,如果想要完整代码或者想要exe 可执行翻译程序的评论区留下邮箱。

转载需注明出处、本文章只做学习交流使用,切勿用作非法用途。

你可能感兴趣的:(python 爬虫+JS解密 打造python 在线翻译程序)