python调用百度翻译api(自己写的非官方demo)

最近翻译一些单词时候每次都得打开chrome,然后打开百度翻译,就很烦

昨天突然来了灵感,就像调用一下模拟浏览器,来尝试爬虫获取翻译后的信息,后来发现urlopen根本不行,于是尝试requests也不行就很gg

于是用了模拟浏览器,结果发现效率真是非常的低下,后来百度看了一下,发现百度翻译是有api接口的

然而昨天手机没有电了,于是今天在申请了开发者之后就用了这个api写了一下代码

话不多说,贴代码,除去了隐私的部分,补充后直接能跑,环境python3.6

import requests
import string
import time
import hashlib
import json

#init
api_url = "http://api.fanyi.baidu.com/api/trans/vip/translate"
my_appid = 你的id
cyber = 你的密钥
lower_case = list(string.ascii_lowercase)

def requests_for_dst(word):
    #init salt and final_sign
    salt = str(time.time())[:10]
    final_sign = str(my_appid)+word+salt+cyber
    final_sign = hashlib.md5(final_sign.encode("utf-8")).hexdigest()
    #区别en,zh构造请求参数
    if list(word)[0] in lower_case:
        paramas = {
            'q':word,
            'from':'en',
            'to':'zh',
            'appid':'%s'%my_appid,
            'salt':'%s'%salt,
            'sign':'%s'%final_sign
            }
        my_url = api_url+'?appid='+str(my_appid)+'&q='+word+'&from='+'en'+'&to='+'zh'+'&salt='+salt+'&sign='+final_sign
    else:
        paramas = {
            'q':word,
            'from':'zh',
            'to':'en',
            'appid':'%s'%my_appid,
            'salt':'%s'%salt,
            'sign':'%s'%final_sign
            }
        my_url = api_url+'?appid='+str(my_appid)+'&q='+word+'&from='+'zh'+'&to='+'en'+'&salt='+salt+'&sign='+final_sign
    response = requests.get(api_url,params = paramas).content
    content = str(response,encoding = "utf-8")
    json_reads = json.loads(content)
    print(json_reads['trans_result'][0]['dst'])

while True:
    word = input("输入你想翻译的内容: ")
    requests_for_dst(word)


猜你喜欢

转载自blog.csdn.net/mr_guo_lei/article/details/78617669