目录
使用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 一个用来解析js的库。pip直接安装就行了!
pip install PyExecJs
效果
接下来我们看效果:
怎么样? 是不是很通俗易懂?你问我怎么更换语种?设置to就行了
语种名单
中文 zh 英语 en
日语 jp 韩语 kor
西班牙语 spa 法语 fra
泰语 th 阿拉伯语 ara
俄罗斯语 ru 葡萄牙语 pt
粤语 yue 文言文 wyw
白话文 zh 自动检测 auto
学会了吗?学会就来个三联吧!谢谢啦!有问题可以加群:706128290 交流。
我是PYmili,下次再见!