
这里写目录标题
-
- 📋 个人简介
-
前言
-
- 百度翻译版本(简单)
-
- 分析
-
代码
-
结果
-
有道翻译版本(困难)
-
- 分析(js逆向)
-
代码
-
结果
-
结语
=================================================================
它来了!它来了!作为一名程序员,英语句子不会翻译,这我不能忍,必须安排脚本!!!
分析
进入百度翻译,F12进入网络中的全部,在你写你要翻译的东西时,在网络中的全部中可以看到sug这个链接,就是我们的接口url,参数是kw。


代码
import requests
post_url=‘https://fanyi.baidu.com/sug’
headers={
‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36’
}
word = input(‘请输入你要翻译的,可以为各种语言:’)
data = {
‘kw’: word
}
response = requests.post(url=post_url,data=data,headers=headers)
dic_obj = response.json() #将json数据转换为字典
print(dic_obj[‘data’][0][‘v’])
结果


分析(js逆向)
F12进入到开发者模式,在网络中的xhr(找ajax请求的地方)中找到下图接口。

然后我们看参数:


两张图比较得出,i 应该就是我们要翻译的句子,画绿线的是不相同表单的参数,需要我们处理,Its一看就是13位的时间戳,salt英文意思是盐,且比时间戳lts多一位,前面十三位都一样,应该是个加盐时间戳(对于某串数字可以进行加一串数字或字符串再进行加密,在加密中我们叫加盐),这两个参数我们完全可以用python单独模拟,为了避免不必要的麻烦或者有些人不会,我们后面直接找到他们的js语句,用python执行js生成就行。
而这里的sign一看有32位,应该是某种加密算法产生的,最常见的就是md5和rsa加密了,下面我们进行全局搜索js逆向:


经过搜索,我们发现了老盆友md5加密,也找到了参数的生成方式,图中js里的r就是时间戳,js里的i就是加盐时间戳,sign是用md5加密的括号里的字符串,还要分析e的产生,可以通过打断点调试找出。

可以看到e就是我们要翻译的东西,现在参数都明显了,我们最简单的其实调用python中的hashlib模块中的md5加密算法就可以得到sign,但这里我们不用,加大难度,练习js逆向。我把直接提取到的md5加密过程的js文件放到网盘里,大家自己提取,代码中要用。
链接:https://pan.baidu.com/s/1aV1tEo35Oyw4TUExhJoXUA
提取码:waan
同时,为了应对反爬,不仅要加User-Agent,还要加Cookie和Referer。
代码
import requests
import execjs #执行js语句的模块
import json
import jsonpath
class Youdao():
def init(self,msg):
url
self.url = ‘https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule’
headers
self.headers = {
‘User-Agent’: ‘Mozilla / 5.0(Windows NT 10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 91.0.4472.124Safari / 537.’,
‘Cookie’: ‘OUTFOX_SEARCH_USER_ID = -1032338096@10.169.0.102;OUTFOX_SEARCH_USER_ID_NCOO = 39238000.072458096;JSESSIONID = aaak-QLUNaabh_wFWK8Qx;___rl__test__cookies = 1626662199192’,
‘Referer’: ‘https://fanyi.youdao.com/’
}
self.msg = msg
self.Formdata = None
def js_Formdata(self):
#时间戳
最后
Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
👉Python所有方向的学习路线👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈
学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。
因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
本文讲述了程序员如何通过分析百度和有道翻译API,使用Python实现自动翻译,并涉及了JavaScript逆向工程,解密MD5和可能的RSA加密。作者还强调了Python在各种IT领域的广泛用途和学习资源的重要性。

125

被折叠的 条评论
为什么被折叠?



