Python破解百度翻译反爬机制:自制翻译器

这篇文章的主要目的还是破解JS参数加密,百度翻译的JS过程并不是很复杂,非常适合新手练手。

首先,打开百度翻译,随便输点词语,点击翻译。

Python学习资料或者需要代码、视频加Python学习群:960410445

Python破解百度翻译反爬机制:自制翻译器_第1张图片

不断点击翻译,在network中会一直跳出框框内的内容。

Python破解百度翻译反爬机制:自制翻译器_第2张图片

打开第二个文件v2transapi,可以看到我们需要的内容。

Python破解百度翻译反爬机制:自制翻译器_第3张图片

现在来分析一下这个文件,它的请求方式为post,下图是它post时所需的data。from是你输入词语的类型,to是需要翻译成的类型,query是翻译的词语,sign和token是通过js文件生成的;现在来找一找这两个参数。

Python破解百度翻译反爬机制:自制翻译器_第4张图片

https://fanyi.bdstatic.com/static/translation/pkg/index_9b62d56.js:formatted是JS文件的链接,打断点调试可以看到,sign是通过m(‘翻译’ )生成的,token是通过 window.common.token生成。

Python破解百度翻译反爬机制:自制翻译器_第5张图片

其中window.common.token在页面的源代码中有出现 ‘04a7c540f2a1e1d6be3dee208d1b7525’;第二个框的参数后面会用到。

Python破解百度翻译反爬机制:自制翻译器_第6张图片
Python破解百度翻译反爬机制:自制翻译器_第7张图片

在来看m()函数,它的参数就是要翻译的内容,定位到5725-5727行,这三行是用来生成一个参数u,且u的值为window.gtk,也就是上一幅图第二个框框内的内容;为了使代码更加灵活,在构造js函数的时候,将参数u从定值转为m()函数的参数,这一部分进行调整。

Python破解百度翻译反爬机制:自制翻译器_第8张图片

调整后的JS代码如下:

Python破解百度翻译反爬机制:自制翻译器_第9张图片

至此整个流程就分析完了,下面来构造自己的翻译器把。顺便一说,百度翻译可以实现88种语言的互转噢。

Python破解百度翻译反爬机制:自制翻译器_第10张图片

效果图如下:

你可能感兴趣的:(Python破解百度翻译反爬机制:自制翻译器)