【Python】使用POST方式抓取有道翻译结果

1.安装requests库

【Python】使用POST方式抓取有道翻译结果_第1张图片

 

 

【Python】使用POST方式抓取有道翻译结果_第2张图片

2.打开有道翻译,按下F12,进入开发者模式,输入我爱青青,点击Network,再点击XHR

【Python】使用POST方式抓取有道翻译结果_第3张图片

【Python】使用POST方式抓取有道翻译结果_第4张图片

3、撰写爬虫

import requests
import json

# 使用有道翻译
def get_translate_date(word=None):
    # 错误 url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
    url = 'http://fanyi.youdao.com/translate'
    Form_data={
        'i': word,
        'from':'AUTO',
        'to':'AUTO',
        'smartresult':'dict',
        'client':'fanyideskweb',
        'salt':'15477850915136',
        'sign': 'cdedfb035de1ac1cf55109a1afb7a2c1',
        'ts':'1547785091513',
        'bv':'777cf4e24b15a2b93e1c9237866d73ad',
        'doctype':'json',
        'version':'2.1',
        'keyfrom':'fanyi.web',
        'action':'FY_BY_REALTIME',
        'typoResult':'false',
    }
    # 请求表单数据
    response = requests.post(url, data=Form_data)
    # 将JSON格式字符串转字典
    content = json.loads(response.text)
    # 打印翻译后的数据
    print(content['translateResult'][0][0]['tgt'])

if __name__  ==  '__main__':
    get_translate_date('我爱青青')

4.翻译结果

【Python】使用POST方式抓取有道翻译结果_第5张图片

5.错误处理(KeyError: 'translateResult')

Python的字典一般都直接查找key ,如果在查找的key不存在的时候就会报:KeyError:

将url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'

改为:url = 'http://fanyi.youdao.com/translate'

 

你可能感兴趣的:(Python,Python学习之路)