python实现调用百度词典接口实现英译汉、汉译英

 话不多说,直接上贴代码。

#!/usr/bin/python3
# coding=utf-8

import requests
#import sys
import json

# query_url = "https://fanyi.baidu.com/extendtrans"
# langdetect_url = "https://fanyi.baidu.com/langdetect"
# query = sys.argv[0]
# headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36"}
# request = requests.post(langdetect_url, data={"query":"判断"}, headers=headers)
# r = json.loads(request.content.decode())
# print(r["lan"])

class fanyi():

    def __init__(self,query):
        #设置请求的百度词典翻译的url接口
        self.query_url = "https://fanyi.baidu.com/basetrans"
        #设置请求的百度词典翻译的输入字串的语言的url接口
        self.langdetect_url = "https://fanyi.baidu.com/langdetect"
        self.query = query
        self.headers = {"User-Agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Mobile Safari/537.36"}

    def langdetect(self):#判断输入的语言
        request = requests.post(self.langdetect_url, data={"query":"self.query"}, headers=self.headers)
        #获取请求的返回json并进行json解码
        r = json.loads(request.content.decode())
        #切片取值
        return r["lan"]

    def post_data(self): #利用输入的语言修改请求的data的值
        #设置请求data
        post_data = {"query": self.query,
                     "from": "en",
                     "to": "zh"
                     }
        #设置请求data
        post_data1 = {"query": self.query,
                     "from": "zh",
                     "to": "en"
                     }
        #判断 此处可优化,由于时间原因,未做过多的处理
        if self.langdetect() == "en":
            return post_data
        else:
            return post_data1


    def request(self):#返回请求结果
        request = requests.post(self.query_url, data=self.post_data(), headers=self.headers)
        r = json.loads(request.content.decode())
        #仅返回一个常用的译文
#        return r["trans"][0]["dst"]
        #返回全部译文
        return r["dict"]["word_means"]

    def run(self):
        print(self.request())

if __name__ == "__main__":
    #实例化,传入需翻译的字串
    fanyi = fanyi("China")
    fanyi.run()

此文仅做技术交流,侵权告知后删除。

你可能感兴趣的:(python实现调用百度词典接口实现英译汉、汉译英)