码迷,mamicode.com
首页 > 编程语言 > 详细

【Python3爬虫】有道翻译

时间:2018-07-26 13:23:08      阅读:531      评论:0      收藏:0      [点我收藏+]

标签:分享   snippet   \n   fonts   ext   params   xhr   ror   打开   

准备:Python3.5+Chrome+Pycharm

步骤:

(1)打开有道翻译的网页,然后鼠标右键检查(或者按F12),再输入一个单词(例如book),在XHR选项中可以看到这条信息,也就是说我们要利用post把要翻译的内容发送出去,然后再获取返回的信息,就能得到翻译的结果了。技术分享图片技术分享图片?

(2)打开Pycharm,新建一个test.py,代码如下:

import requests


def main():
    txt = input("请输入要翻译的内容:")
    data = {
        "i": txt,
        "from": "AUTO",
        "to": "AUTO",
        "smartresult": "dict",
        "client": "fanyideskweb",
        "doctype": "json",
        "version": "2.1",
        "keyfrom": "fanyi.web",
        "action": "FY_BY_REALTIME",
        "typoResult": "true"
    }

    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
    res = requests.post(url, data=data)
    js = res.json()
    print("翻译结果:" + js[‘translateResult‘][0][0][‘tgt‘] + ‘\n‘)


if __name__ == ‘__main__‘:
    while True:
        main()
技术分享图片

我使用的是requests库,这里使用post请求返回的结果是一个字典:{‘translateResult‘: [[{‘tgt‘: ‘书‘, ‘src‘: ‘book‘}]], ‘errorCode‘: 0, ‘elapsedTime‘: 0, ‘type‘: ‘EN2ZH_CN‘},然后我们用[‘translateResult‘][0][0][‘tgt‘]把翻译的结果提取出来就行了。

注意:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule这个链接里要把translate后面的_o去掉,如果不去掉,post请求返回的是‘errorCode‘:50,至于原因,我这个小白也不清楚==

【Python3爬虫】有道翻译

标签:分享   snippet   \n   fonts   ext   params   xhr   ror   打开   

原文地址:https://www.cnblogs.com/TM0831/p/9370786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!