美文网首页
Python爬虫 ————POST请求有道翻译

Python爬虫 ————POST请求有道翻译

作者: gunginer | 来源:发表于2019-10-21 09:42 被阅读0次

    http://blog.csdn.net/nunchakushuang/article/details/75294947

    因为有道翻译有反爬虫机制,所以简单的爬肯定不行,但是这一篇博客只是告诉我们有道的JS反爬虫代码,完全运行后还需要改你得到的POST请求的URL 

    我的URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule  {"errorcode":50}

    需要修改   http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule 

    就是把_o去掉,而且这样的请求只能是用于英文翻译汉文.

    为避免{"errorCode":50}的错误,去除 url 中的_o


    请求包 返回包

    代码:

    #!/usr/bin/python3

    # -*- coding: UTF-8 -*-

    import json

    import requests

    #有道api

    def translation(word):

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

        #word 为需要翻译的词

        data={

            'i':word,

            'form':'AUTO',

            'to':'Auto',

            'doctype':'json',

            'version':'2.1',

            'keyfrom':'fanyi.web',

            'action':'FY_BY_CLICKBUTTON',

            'typoResult':'false'

            }

        response = requests.post(url,data=data)

        if response.status_code == 200:

            return response.text

        else:

            print("error please try again")

    def get_result(response):

        result = json.loads(response)

        print(result)

        print("输入的词为:%s" % result['translateResult'][0][0]['src'])

        print("输入的词为:%s" % result['translateResult'][0][0]['tgt'])

    def main():

        word = input("请输入需要翻译的词或语句:")

        translate = translation(word)

        get_result(translate)

    main()

    相关文章

      网友评论

          本文标题:Python爬虫 ————POST请求有道翻译

          本文链接:https://www.haomeiwen.com/subject/cvbzmctx.html