Python爬虫实战,破解百度翻译JS加密,制作桌面翻译工具
Posted 楚_阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫实战,破解百度翻译JS加密,制作桌面翻译工具相关的知识,希望对你有一定的参考价值。
开发工具
Python版本:3.6.4
相关模块:
requests模块;
pyqt5模块;
js2py模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
首先随便翻译个词测试一下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SLHX5mI6-1617028653097)(https://upload-images.jianshu.io/upload_images/2539976-3ba807ee2528831a?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
发现是post请求,请求头是这样的:
需要添加的数据是这些:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fUCAmEGZ-1617028653102)(https://upload-images.jianshu.io/upload_images/2539976-d34068688fbf91af?imageMogr2/auto-orient/strip|imageView2/2/w/1240)]
测试之后可以发现请求头只需要添加:
Cookie即可。
Data只需要添加:
query,
simple_means_flag,
sign,
token即可。
其中simple_means_flag为固定量,query代表待翻译的词,接下来需要解决的就是破解sign和token这两个参数。先说token吧,token可以直接在百度翻译主页的源码里找到:
但是貌似因为时间戳不同步所以直接请求百度翻译的主页获取到的token是用不了的,所以只能人为地把网页当前显示的token值复制下来然后赋值给代码里的token。
接下来再说说sign,sign是由一段js代码产生的,如下图所示(index_9b62d56.js中):
在python中用execjs执行这段js代码即可获得我们所需要的sign值,计算sign值的过程中需要用到一个名为gtk的变量的值,直接请求百度翻译的主页即可获取该值:
于是我们就可以愉快地写代码实现百度翻译的内容爬取功能了:
然后写个简单的Demo:
文章到这里就结束了,感谢你的观看,关注我每天分享Python模拟登录系列,下篇文章分享制作一款简单的翻译软件。
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
干货主要有:
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
All done~完整源代码+干货详见个人简介或者私信获取相关文件。。
以上是关于Python爬虫实战,破解百度翻译JS加密,制作桌面翻译工具的主要内容,如果未能解决你的问题,请参考以下文章