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

#coding=utf-8

importurllibimporturllib2importjson‘‘‘功能说明:

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

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

classYoudaoFanyi: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",

}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)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值