首页 > 代码库 > python "爬虫+有道词典"实现一个简单翻译程序
python "爬虫+有道词典"实现一个简单翻译程序
抓包软件使用的是Fiddler4
新版的查询接口 比较负责,引入了salt和sign
http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=http://fanyi.youdao.com/
这里使用老版本的查询接口
http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/
代码:
# coding=utf-8 import urllib import urllib2 import json ‘‘‘ 功能说明: 根据输入要翻译的文字,进行有道自动翻译: 实现中文->英文、英语及其他语言->中文的转换 ‘‘‘ class YoudaoFanyi: def __init__(self): self.url = ‘http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/‘ 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", } def get_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) return data def show_translate_result(self, html): ‘‘‘ 解析返回的json数据 :param html: 返回的json数据 :return: None ‘‘‘ data = json.loads(html) print ‘*‘ * 10 target = data[‘translateResult‘][0][0][‘tgt‘] print target if ‘smartResult‘ in data: result = data[‘smartResult‘][‘entries‘] result_str = ‘\n‘.join(result[1:]) # result列表中第一个元素为"" print ‘有道词典结果‘ print result_str print ‘*‘ * 10 def translate(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() while True: key = raw_input("请输入你要翻译的文字[Q|quit 退出]: ").strip() if key in [‘Q‘, ‘quit‘]: break youdao.translate(key)
python "爬虫+有道词典"实现一个简单翻译程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。