import urllib.request
import urllib.parse
import json
需要对代码进行隐藏
服务器检查User-Agent来判断是否是python
所以需要修改headers中的User-Agent,有以下两种方法:
- 通过Request的headers的参数修改
head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36'
list1 = input('请输入你要翻译的内容:')
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['tyep'] = 'AUTO'
data['i'] = list1
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1536914428238'
data['sign'] = 'a067b3b10b892683417e05611c41d0dc'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'false'
先编码再解码
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data,head)
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
dic = json.loads(html)
print('翻译结果:%s'%(dic['translateResult'][0][0]['tgt']))
- 通过Requset的add.header()方法修改
list1 = input('请输入你要翻译的内容:')
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['tyep'] = 'AUTO'
data['i'] = list1
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1536914428238'
data['sign'] = 'a067b3b10b892683417e05611c41d0dc'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'false'
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data)
req.add_header('User-Agent',
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
dic = json.loads(html)
print('翻译结果:%s'%(dic['translateResult'][0][0]['tgt']))