|
发表于 2024-6-10 17:24:15
|
显示全部楼层
代码中存在一些问题,导致没有返回值。我来帮你修复一下。
首先,你定义了一个字典`head`,但是在接下来的代码中又重新给`head`赋值为一个字符串,这样会导致后续使用`head`时出错。我们可以将`head`定义为一个字典,并添加User-Agent头部信息,代码如下:
- head = {}
- head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'
复制代码
其次,你将需要传递的数据都赋值给了同一个变量`data`,导致前面的值被后面的值覆盖掉。我们可以将所有需要传递的数据放入一个字典中,并用`urllib.parse.urlencode()`方法将它们编码成URL参数字符串。然后,将参数字符串转换成字节流并传递给`urllib.request.Request()`函数,代码如下:
- data = {
- 'i': content,
- 'from': 'AUTO',
- 'to': 'AUTO',
- 'smartresult': 'dict',
- 'client': 'fanyideskweb',
- 'salt': f,
- 'sign': sign,
- 'doctype': 'json',
- 'version': '2.1',
- 'keyfrom': 'fanyi.web',
- 'action': 'FY_BY_CL1CKBUTTON',
- 'typoResult': 'true'
- }
- data = urllib.parse.urlencode(data).encode('utf-8')
- request = urllib.request.Request(url=url, data=data, method='POST', headers=head)
复制代码
最后,完成以上修改后,我们可以得到翻译结果。具体代码如下:
- import urllib.request
- import urllib.parse
- import json
- import time
- import random
- import hashlib
- content = input('请输入需要翻译的句子:')
- url = '发不了,这里省略'
- head = {}
- head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0'
- data = {}
- u = 'fanyideskweb'
- d = content
- f = str(int(time.time() * 1000) + random.randint(1, 10))
- c = 'rY0D^0\'nM0}g5Mm1z%1G4'
- sign = hashlib.md5((u + d + f + c).encode('utf-8')).hexdigest()
- data = {
- 'i': content,
- 'from': 'AUTO',
- 'to': 'AUTO',
- 'smartresult': 'dict',
- 'client': 'fanyideskweb',
- 'salt': f,
- 'sign': sign,
- 'doctype': 'json',
- 'version': '2.1',
- 'keyfrom': 'fanyi.web',
- 'action': 'FY_BY_CL1CKBUTTON',
- 'typoResult': 'true'
- }
- data = urllib.parse.urlencode(data).encode('utf-8')
- request = urllib.request.Request(url=url, data=data, method='POST', headers=head)
- response = urllib.request.urlopen(request)
- result = json.loads(response.read().decode('utf-8'))
- print(result['translateResult'][0][0]['tgt'])
复制代码
现在运行这段代码,就能得到翻译结果啦!希望能帮到你。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|