最近在提高自己编程能力,拿一些现实的小脚本练下。该脚本为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)