1.打开有道翻译的在线翻译点击检查
2.点击network,然后输入需要翻译的内容,将进入以下界面
3.然后导入以下模块:
import urllib.request
import urllib.parse
import json
- 先设置一个死循环while True:可以一直翻译
- 找到最下面的data,然后把他做成一个字典,把‘i’所对应的值改成key,就是我们想翻译的值,然后在输入:data=urllib.parse.urlencode(data)即是二进制的转化,之后把data数据转化为字节流的数据即:data=bytes(data,‘utf-8’)
4.之后我们需要发起请求获取响应,先找到网页的url,由于该类软件的不同我们需要去掉url中的’_o’否则会报错,然后设置headers的值,我们要把它设置成一个字典的形式
- req=urllib.request.Request(url,data=data,headers=headers)
- 我们利用这个方式传递一个数据把data传递进来
- 接下来我们利用一个json的模块把字符串的格式转化成字典的格式,即:dict_1= json.loads(html),如果直接输出上一步的html他是一个字符串的格式
以下是完整代码
import urllib.request
import urllib.parse
import json
while True:
key=input(‘你需要输入的数据:’)
data={
‘i’:key,
‘from’: ‘AUTO’,
‘to’: ‘AUTO’,
‘smartresult’: ‘dict’,
‘client’:‘fanyideskweb’,
‘salt’:’ 16156284967029’,
‘sign’: ‘173cebe94ef6d7a0a96261f1e6b4c548’,
‘lts’: ‘1615628496702’,
‘bv’: ‘d16528ec6ead722121051f646932f6ab’,
‘doctype’: ‘json’,
‘version’: ‘2.1’,
‘keyfrom’: ‘fanyi.web’,
‘action’: ‘FY_BY_REALTlME’
}
data=urllib.parse.urlencode(data)
#吧data数据转化为字节流的数据
data=bytes(data,'utf-8')
#要去掉_o
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
headers={
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3706.400 SLBrowser/10.0.4040.400'
}
req=urllib.request.Request(url,data=data,headers=headers)
res=urllib.request.urlopen(req)
html=res.read().decode('utf-8')
dict_1= json.loads(html)
r=dict_1['translateResult']
m=r[0][0]['tgt']
print(m)