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

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请求有道翻译)