最近翻译一些单词时候每次都得打开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)