urllib.request.urlopen()没有header这个参数,需要添加header,参考以下代码:
import urllib.request
import urllib.parse
import json
keyword = input('请输入需要翻译的内容:')
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link'
req = urllib.request.Request(url)
req.add_header("User-Agent","'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36")
data = {}
data['type']='AUTO'
data['i']=keyword
data['doctype']='json'
data['xmlVersion']='1.8'
data['keyfrom']='fanyi.web'
data['ue']='UTF-8'
data['action']='FY_BY_CLICKBUTTON'
data['typoResult']='true'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(req,data)
html = response.read().decode('utf-8')
translation = json.loads(html)
print('翻译结果是:%s' %(translation['translateResult'][0][0]['tgt']))
|