VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 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~完整源代码+干货详见个人简介或者私信获取相关文件。

文章出处:https://www.cnblogs.com/daimubai/p/14841808.html


相关教程