1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python爬取有道词典_python 爬虫+有道词典实现一个简单翻译程序

python爬取有道词典_python 爬虫+有道词典实现一个简单翻译程序

时间:2022-09-28 02:13:04

相关推荐

python爬取有道词典_python 爬虫+有道词典实现一个简单翻译程序

#coding=utf-8

importurllibimporturllib2importjson‘‘‘功能说明:

根据输入要翻译的文字,进行有道自动翻译:

实现中文->英文、英语及其他语言->中文的转换‘‘‘

classYoudaoFanyi:def __init__(self):

self.url= ‘/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=/‘self.headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36",

}defget_encoded_payload(self, key):‘‘‘:param key: 带翻译的文字

:return: 返回url编码过的数据‘‘‘payload={"i": key,‘type‘: ‘AUTO‘,"doctype": "json","xmlVersion": "1.8","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTON","typoResult": "true","ue": "UTF-8"}

data=urllib.urlencode(payload)returndatadefshow_translate_result(self, html):‘‘‘解析返回的json数据

:param html: 返回的json数据

:return: None‘‘‘data=json.loads(html)print ‘*‘ * 10target= data[‘translateResult‘][0][0][‘tgt‘]printtargetif ‘smartResult‘ indata:

result= data[‘smartResult‘][‘entries‘]

result_str= ‘\n‘.join(result[1:]) #result列表中第一个元素为""

print ‘有道词典结果‘

printresult_strprint ‘*‘ * 10

deftranslate(self, content):‘‘‘对输入的内容进行翻译

:param content: 带翻译的内容

:return: None‘‘‘payload= self.get_encoded_payload(content) #获取经过url编码后的数据

request =urllib2.Request(

self.url,

data=payload,

headers=self.headers) #构造请求

response = urllib2.urlopen(request) #发送请求

self.show_translate_result(response.read()) #解析结果

if __name__ == ‘__main__‘:

youdao=YoudaoFanyi()whileTrue:

key= raw_input("请输入你要翻译的文字[Q|quit 退出]:").strip()if key in [‘Q‘, ‘quit‘]:breakyoudao.translate(key)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。