hanjianfei
import urllib.request
import urllib.parse
import json

content = input("请输入翻译的内容:")

url = \'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule\'
data = {}

data[\'i\'] = content

data[\'from\'] = \'en\'
data[\'to\'] = \'zh-CHS\'
data[\'smartresult\'] = \'dict\'
data[\'client\'] = \'fanyideskweb\'
data[\'salt\'] = \'15934837793668\'
data[\'sign\'] = \'6c263b05b4511c7c9fc9e540d8cb3b42\'
data[\'ts\'] = \'1593483779366\'
data[\'bv\'] = \'dd0840fad0d96c2e9de5a4f181a39d98\'
data[\'doctype\'] = \'json\'
data[\'version\'] = \'2.1\'
data[\'keyfrom\'] = \'fanyi.web\'
data[\'action\'] = \'FY_BY_CLICKBUTTION\'
data = urllib.parse.urlencode(data).encode(\'utf-8\')

response = urllib.request.urlopen(url,data)

html =response.read().decode(\'utf-8\')

print(html)
target = json.loads(html)
print("翻译的结果是:%s" %(target[\'translateResult\'][0][0][\'tgt\']))

因为有道翻译有反爬虫机制,所以简单的爬肯定不行,修改一下url,去掉_o

现在的url:http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule
原来的url:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule  

附上重要代码讲解

请输入翻译的内容:jia
                          {"type":"EN2ZH_CN","errorCode":0,"elapsedTime":2,"translateResult":[[{"src":"jia","tgt":"贾"}]]}

>>> target = json.loads(html)
>>> target[\'translateResult\'][0][0]
{\'src\': \'jia\', \'tgt\': \'贾\'}
>>> target[\'translateResult\'][0][0][\'tgt\']
\'贾\'

  

分类:

技术点:

相关文章: