import requests
import jsonpath
import execjs
from fake_useragent import FakeUserAgent
class BaiDu:
def __init__(self):
self.url = "https://fanyi.baidu.com/v2transapi?from=zh&to=en"
self.headers = {
'User - Agent': FakeUserAgent().random,
"Cookie": "BIDUPSID=B1913BA2C5D52C692BEE090AB492C7BB; PSTM=1628772534; BAIDUIDafD_hMK-lj5_aeP-t5Mo-etJyaR3LMhvvWJ5TMConnDhF-5R57Q4R75IQ2Vl3n3t3qsI3P3MOZXMLg5n7Tbb8eBgvZ2UQF5l8-sq0x0bO5DDuOQq_L0xvJ5IOMahvP5l7xObroQlPK5JkgMx6MqpQJQeQ-5KQN3KJmfbL9bT3YjjISKx-_tj_tfn5P; Hm_lvt_64YwZWJkYzgwNDJiYTNiZDE2YTEwODNlY2E5OTg2ZWE4NzI3OWQ0MjU1YWNkZTEwYTUzYWIyN2Q4M2MwMGE2NWU0M2JhNzlhNjYxMzAwNmQ3ZjcyNjQ5YjVjN2NkNmZkMTQ3MDU2MWM4ZDcyYjYzN2NkZmQ2YjE4YjdhZTUzYTNiMl83Xzg4ZWU2",
"Referer": "https://fanyi.baidu.com/?aldtype=16047"
}
def form_data(self):
data_ = input("请输入你要翻译的文字:")
if data_>="\u4e00" and data_<= "\u9fa5":
fr = "zh"
to = "en"
elif "\u0041"<= data_ <= "\u005a" or "\u0061"<=data_<="\u007a":
fr = "en"
to = "zh"
with open("baidu.js", "r", encoding="utf-8") as f:
js_data = f.read()
js_obj = execjs.compile(js_data)
sign_data = js_obj.call("e", data_)
form_data = {
"from": fr,
"to": to,
"query": data_,
"transtype": "translang",
"simple_means_flag": "3",
"sign": sign_data,
"token": "be1da9ed236304acc93377a59d844360",
"domain": "common",
}
return form_data
def send_request(self,form_data):
response_ = requests.post(self.url,headers=self.headers,data=form_data)
data_py = response_.json()
# print(data_py)
return data_py
def parse_data(self,data_py):
res_ = jsonpath.jsonpath(data_py,"$..dst")
res_ = "".join(res_)
# print(res_)
return res_
def save(self,res_):
print("翻译结果为:", res_)
def run(self):
form_data = self.form_data()
data_py = self.send_request(form_data)
res_ = self.parse_data(data_py)
self.save(res_)
if __name__ == '__main__':
while True:
baidu = BaiDu()
try:
baidu.run()
except:
print("很抱歉,系统中没有收录改文字!")
面向对象改写某翻译
最新推荐文章于 2021-11-01 21:36:11 发布