import requests
import json
import random
import hashlib
import sys
class BaiduTranslate(object):
def __init__(self, text):
self.text = text
self.params = {'query': text}
self.headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
pass
def langdetect(self):
url = 'https://fanyi.baidu.com/langdetect'
response = requests.post(url, headers=self.headers, params=self.params)
res = json.loads(response.content.decode())
print(res)
return res["lan"]
def translate(self):
appid = '20151113000005349'
secretKey = 'osubCEzlGjzvw8qdQc41'
q = self.text
from_lang = self.langdetect()
if from_lang == 'en':
to_lang = 'zh'
else:
to_lang = 'en'
salt = random.randint(32768, 65536)
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
url = 'http://fanyi-api.baidu.com/api/trans/vip/translate?appid=' + appid + '&q=' + q + '&from=' + from_lang + '&to=' + to_lang + '&salt=' + str(
salt) + '&sign=' + sign
response = requests.post(url, headers=self.headers)
res = json.loads(response.content.decode())
# print(res)
print(res['trans_result'][0]['dst'])
if __name__ == '__main__':
text = ''
for item in range(1, len(sys.argv)):
text += sys.argv[item] + " "
baidu_translate = BaiduTranslate(text)
baidu_translate.translate()
在网上参考了很多版本的可以实现爬取百度翻译的代码,但是不知道为什么在自己电脑没有运行成功,终于改了好几次之后以上版本可以成功啦~
目前可以中英互译
以上供参考~