最近在提高自己编程能力,拿一些现实的小脚本练下。该脚本为python语言,主要涉及模块urllib。
功能:输入中文翻译出来英文,输入英文翻译出来中文。
import urllib.request
import urllib.parse #将data解析为url格式
import json
while True:
content = input("请输入需要翻译的内容(输入“q!”退出程序):")
if content == '':
print('请输入需要翻译的内容:')
continue #如果输入为空,则跳出本次循环,进入下次循环。
if content == 'q!':
break #如果输入q!,则退出程序。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link'
head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
data = {}
data['type'] = 'AUTO'
data['i'] = content
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') #当url地址含有中文或者“/”的时候,这是就需要用做urlencode一下编码转换。
req = urllib.request.Request(url,data,head) #当请求方法为get时给url赋值即可。请求方法为post时urllib.request.Request(url,data)把data赋值即可
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
json.loads(html)
target = json.loads(html)
target = target['translateResult'][0][0]['tgt']
print(target)