目录
抓包
代码
效果
使用Python爬取百度翻译,可更换语种如:日语,英语,这样就可以完成一个简易的翻译器!建议收藏!本文需要用到requests库和一些爬虫知识!可以参考方法改造代码!
Hi ! 又见面了!我是PYmili。今天给大家带来的....,我好像说过了!嘿嘿!那么就开始第一步吧!
抓包
打开百度翻译可以看见如下界面。
可以看见两个输入框,和两个选择框。那么就基本知道走动方向了!我们随便选择语种。输入内容,查看网页链接情况。
可以看见网页链接发生了变化!那我们按 F12 键查看网络,找到一个叫 v2transapi?from=zh&to=jp 的xhr文件。
可以看见一个API:https://fanyi.baidu.com/v2transapi 后面跟着请求?from=zh 这里就是语种了。
代码
from = 语种。zh就是中文了!&to=jp 这里就是一样的jp就是要翻译至的语种 jp日语。那么,代码就可以这样写了!
import requests
import execjs
msg = input("输入你要查询的句子或词:")
url = "https://fanyi.baidu.com/v2transapi"
headers = {
'User-Agent':'#这里填你自己的',
'Cookie':'#这里写你的Cookie',
}
with open('sign.js', 'r', encoding='utf-8') as f: # js文件
sign = execjs.compile(f.read()).call("get", msg)
data = {
"from": "zh", # 要翻译的语种
"to": "jp", # 翻译成的语种
"query": msg, # 要翻译的内容
'transtype': 'translang',
"simple_means_flag": "3",
"sign":sign,
"token":"#写你自己的token值",
"domain":"common"
}
r = requests.post(url=url, headers=headers, data=data)
print(r)
#print(r.json())
json = r.json() # 获取json文件内容
print(json)
data = json['trans_result']
for i in json['trans_result']:
datas = json['trans_result'][i]
print(datas[0]['dst'])
break
cookie值可以在看见的,需要填自己的cookie值。看图
填你自己的!填我的没用啊! user-agent值也是如此,网页往下滑就行了。
我们慢慢来解释一下,首先!我们要请求这个api https://fanyi.baidu.com/v2transapi 这样我们再向api传入内容:
data = {
"from": "zh",
"to": "jp",
"query": msg,
'transtype': 'translang',
"simple_means_flag": "3",
"sign":sign,
"token":"",
"domain":"common"
}
from值就是要翻译的语种,to就是翻译至的语种,query就是内容,还有两个重要的内容。sign这个是js生成的中文钥匙不是固定的,那我们就得自己生成。我这里用了群里一位老哥分享的js包可以加QQ群:706128290在群文件中,自行拿取。还有就是token值是网页固定的。看就知道了
之前的文件下拉到最后。这里进行涂改,大家可以输入自己的值。怎么样是不是很简单?
在使用前!要安装一个库!PyExecJs
pip install PyExecJs
效果
接下来我们看效果:
怎么样? 是不是很通俗易懂?你问我怎么更换语种?设置to就行了
语种名单
中文 zh 英语 en
日语 jp 韩语 kor
西班牙语 spa 法语 fra
泰语 th 阿拉伯语 ara
俄罗斯语 ru 葡萄牙语 pt
粤语 yue 文言文 wyw
白话文 zh 自动检测 auto