上一篇:python3:爬有道翻译是没有用到第三方库的,这一篇将通过requests+lxml来爬取有道翻译的结果.
第三方库的安装:

requests安装: 

pip install requests


不多说,上code,请各位看官对比一下不同点:

#!/user/bin/python
#-*- coding:utf-8 -*-

import requests

def youdaoTranslate(value, count):
    if value == '':
        print('输入内容为空@_@')
        return False
    else:
        # Request URL
        responseURL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
        # 待提交准备Post给url的Data:定义为dict
        form_Data = {}
        form_Data['i'] = value
        form_Data['from'] = 'AUTO'
        form_Data['to'] = 'AUTO'
        form_Data['smartresult'] = 'dict'
        form_Data['client'] = 'fanyideskweb'
        form_Data['doctype'] = 'json'
        form_Data['version'] = '2.1'
        form_Data['keyfrom'] = 'fanyi.web'
        form_Data['action'] = 'FY_BY_REALTIME'
        form_Data['typoResult'] = 'false'
        # 使用urlencode方法转换标准格式 
        r = requests.post(responseURL, data = form_Data)
        result = r.json()
        # 使用JSON
        # 找到翻译结果
        # 这里推荐一个格式化JSON的好工具:https://c.runoob.com/front-end/53
        translate_result_main = result['translateResult'][0][0]['tgt']
        # 打印翻译结果
        print(f'{count}. {translate_result_main}\n\n')
        return True
    
if __name__ == '__main__':
    try:
        count = 1
        while True:
            print('-'*26)
            word = input('请输入待翻译的单词或句子:\n').strip()
            if youdaoTranslate(word, count) == True:
                count += 1
    except KeyboardInterrupt:
        print('\a手动退出!欢迎再来')
    

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐