Python系列爬虫之百度翻译小爬虫

开发工具

Python版本:3.6.4
相关模块:

requests模块;

pyqt5模块;

js2py模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

首先随便翻译个词测试一下:

Python系列爬虫之百度翻译小爬虫_第1张图片

发现是post请求,请求头是这样的:

Python系列爬虫之百度翻译小爬虫_第2张图片

需要添加的数据是这些:

Python系列爬虫之百度翻译小爬虫_第3张图片

测试之后可以发现请求头只需要添加:

Cookie即可。

Data只需要添加:

query,

simple_means_flag,

sign,

token即可。

其中simple_means_flag为固定量,query代表待翻译的词,接下来需要解决的就是破解sign和token这两个参数。先说token吧,token可以直接在百度翻译主页的源码里找到:

Python系列爬虫之百度翻译小爬虫_第4张图片

但是貌似因为时间戳不同步所以直接请求百度翻译的主页获取到的token是用不了的,所以只能人为地把网页当前显示的token值复制下来然后赋值给代码里的token。

接下来再说说sign,sign是由一段js代码产生的,如下图所示(index_9b62d56.js中):

Python系列爬虫之百度翻译小爬虫_第5张图片

在python中用execjs执行这段js代码即可获得我们所需要的sign值,计算sign值的过程中需要用到一个名为gtk的变量的值,直接请求百度翻译的主页即可获取该值:

Python系列爬虫之百度翻译小爬虫_第6张图片

于是我们就可以愉快地写代码实现百度翻译的内容爬取功能了:

Python系列爬虫之百度翻译小爬虫_第7张图片

然后写个简单的Demo:

Python系列爬虫之百度翻译小爬虫_第8张图片

为了帮助提升正在学习Python编程的伙伴们,在这里为大家准备了丰富的学习大礼包

Python系列爬虫之百度翻译小爬虫_第9张图片

All done~完整源代码详见个人简介中获取相关文件。

你可能感兴趣的:(Python系列爬虫之百度翻译小爬虫)