import requests
import execjs
import re
import urllib3
import json
urllib3.disable_warnings()
with open('fanyi.js', 'r') as fp:
js_content = fp.read()
ctx = execjs.compile(js_content)
cookies = {
'REALTIME_TRANS_SWITCH': '1',
'FANYI_WORD_SWITCH': '1',
'HISTORY_SWITCH': '1',
'SOUND_SPD_SWITCH': '1',
'SOUND_PREFER_SWITCH': '1',
'APPGUIDE_10_0_2': '1',
'PSTM': '1655869301',
'BIDUPSID': 'D8DEB4E2C086A4901ACB3FE43CFB5C3F',
'BAIDUID': '5C7EC87C47F59FB57E8477B89D5AB753:FG=1',
'BDUSS': 'lEZzZ4VExXcWxEWEM4dGRDLTFLUkJoamRFcDFJNmpNfllmWVZueVlZREFqLXhpRVFBQUFBJCQAAAAAAAAAAAEAAAAQBwjSZ3VjaGlndWNoaTEyMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMACxWLAAsViSn',
'H_WISE_SIDS': '107316_110085_180638_188745_194529_196426_197471_204902_206123_208721_209568_210301_210322_210325_211435_211985_212295_213035_213351_214791_214967_215730_216047_216212_216368_216714_216842_216941_217168_218455_218597_219563_219942_219946_220072_220315_220340_220600_220608_220663_221118_221120_221318_221468_221502_221527_221697_221733_221795_221824_221871_221920_222157_222299_222352_222397_222522_222615_222617_222620_222780_222796_222878_222888_222956_223135_223162_223240_223253_223344_223374_223395_223482_223667_223770_223787_223824_223847_223898_223989_224055_224084_224130_224205_224268_224317_224425_224446_224812',
'BDUSS_BFESS': 'lEZzZ4VExXcWxEWEM4dGRDLTFLUkJoamRFcDFJNmpNfllmWVZueVlZREFqLXhpRVFBQUFBJCQAAAAAAAAAAAEAAAAQBwjSZ3VjaGlndWNoaTEyMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMACxWLAAsViSn',
'BAIDUID_BFESS': '5C7EC87C47F59FB57E8477B89D5AB753:FG=1',
'delPer': '0',
'PSINO': '2',
'ZFY': 'f9X5Q0UXBahd8gCGR1U1f2ded82MRMeSPooeWj1MxpY:C',
'RT': '"z=1&dm=baidu.com&si=4sr6vfe1hdj&ss=l8cnwbaq&sl=2&tt=27s&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=2s9&ul=3f5&hd=3jn"',
'jsdk-uuid': '59398b25-68b3-479a-bff0-24179ace2aba',
'BCLID': '12394824466233631156',
'BCLID_BFESS': '12394824466233631156',
'BDSFRCVID': 'oV4OJexroG0ufl3ja2b_hF0xIeKK0gOTDYLEUamaI2AU2V4VgrUBEG0Pt_U-mEt-J8jwogKK0mOTHv-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5',
'BDSFRCVID_BFESS': 'oV4OJexroG0ufl3ja2b_hF0xIeKK0gOTDYLEUamaI2AU2V4VgrUBEG0Pt_U-mEt-J8jwogKK0mOTHv-F_2uxOjjg8UtVJeC6EG0Ptf8g0M5',
'H_BDCLCKID_SF': 'tR-tVCtatCI3HnRv5t8_5-LH-UoX-I62aKDsMhFEBhcqEIL406ojX40SMG57LxJ33JROaRK-JR0bMxbSj4Qo5qL3QPQqLPCLXKJb3DQGMp5nhMJN257JDMP0-xPfa5Oy523ion6vQpn-KqQ3DRoWXPIqbN7P-p5Z5mAqKl0MLPbtbb0xXj_0DTvBDG_fJ6-sb5vfstTa-njoKROvhjRH-f_gyxomtjDqJncIaCQ_tqcjhJnDDb7zKfA0MJoqLUkqKCOJBqTPW45sEn6dbR5JKx08QttjQpvPfIkjahjztnoqSn7TyU42hf47yhDL0q4Hb6b9BJcjfU5MSlcNLTjpQT8r5MDOK5OhJRLHVIK5fID5hCvuKnrWq4D_MfOtetJyaR3P_CnvWJ5TEJjJ55Kh26tqDRuLLPvltTbA0lvctn3cShPCKtRvh68OKtbWXPjZHGcholcM3l02VKOIe-t2ynLV3foBXtRMW20jWl7mWPLVsxA45J7cM4IseboJLfT-0bc4KKJxbnLWeIJEjjC5jTQ-jGADJjne-IT-0n7D5JTjejrnh6RtjUKgyxomtjjf5H7la-Q_Klvb8bnDDb7zXp_Dhl_tLUkqKCOb3q7GMJKVqUnGeJQqyftPQttjQTQufIkja-5zbI8B8R7TyU42hf47yboW0q4Hb6b9BJcjfU5MSlcNLTjpQT8r5MDOK5OhJRLe_KDaJItWbP5kMtn_qttjMfbWetTbHD7yWCvOQDbcOR59K4nnDbLEhabB56jaXKbloPnY5lvvhb3O3MOZXMLA-fcKB6jCQRrp_UQj-f5Isq0x0bOr3DuDQq8LBjvBbKOMahkMal7xO-LzQlPK5JkgMx6MqpQJQeQ-5KQN3KJmfbL9bT3YjjISKx-_J6LOfUK',
'H_BDCLCKID_SF_BFESS': 'tR-tVCtatCI3HnRv5t8_5-LH-UoX-I62aKDsMhFEBhcqEIL406ojX40SMG57LxJ33JROaRK-JR0bMxbSj4Qo5qL3QPQqLPCLXKJb3DQGMp5nhMJN257JDMP0-xPfa5Oy523ion6vQpn-KqQ3DRoWXPIqbN7P-p5Z5mAqKl0MLPbtbb0xXj_0DTvBDG_fJ6-sb5vfstTa-njoKROvhjRH-f_gyxomtjDqJncIaCQ_tqcjhJnDDb7zKfA0MJoqLUkqKCOJBqTPW45sEn6dbR5JKx08QttjQpvPfIkjahjztnoqSn7TyU42hf47yhDL0q4Hb6b9BJcjfU5MSlcNLTjpQT8r5MDOK5OhJRLHVIK5fID5hCvuKnrWq4D_MfOtetJyaR3P_CnvWJ5TEJjJ55Kh26tqDRuLLPvltTbA0lvctn3cShPCKtRvh68OKtbWXPjZHGcholcM3l02VKOIe-t2ynLV3foBXtRMW20jWl7mWPLVsxA45J7cM4IseboJLfT-0bc4KKJxbnLWeIJEjjC5jTQ-jGADJjne-IT-0n7D5JTjejrnh6RtjUKgyxomtjjf5H7la-Q_Klvb8bnDDb7zXp_Dhl_tLUkqKCOb3q7GMJKVqUnGeJQqyftPQttjQTQufIkja-5zbI8B8R7TyU42hf47yboW0q4Hb6b9BJcjfU5MSlcNLTjpQT8r5MDOK5OhJRLe_KDaJItWbP5kMtn_qttjMfbWetTbHD7yWCvOQDbcOR59K4nnDbLEhabB56jaXKbloPnY5lvvhb3O3MOZXMLA-fcKB6jCQRrp_UQj-f5Isq0x0bOr3DuDQq8LBjvBbKOMahkMal7xO-LzQlPK5JkgMx6MqpQJQeQ-5KQN3KJmfbL9bT3YjjISKx-_J6LOfUK',
'H_PS_PSSID': '37153_36558_37354_36885_37404_36789_37428_37259_26350_37365',
'ZD_ENTRY': 'baidu',
'Hm_lvt_64ecd82404c51e03dc91cb9e8c025574': '1663922659',
'Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574': '1663928903',
}
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
"Acs-Token": "1664089442773_1664117742088_PcdwT4cNbht383z5t3Wxtq1Qk4v2RR1I8LDFnSyiiLaKopOmpYdCjpYBCGTygiFgOpTIGcNKOvstt/tz4"
"XNOG54O0atNLCaqR/30jUAWikQkHt/5UwENddKR3B5mUCbCF5WDxH11v43LvNGzB8Za3CncrVFYuQ0R+Fm5EGHZAh5sXZqVsQeluMP2UE+Ba"
"ijAKAIRMf2lp87ekoG5pJgEJgzmJx3qJWpngflV4c5kpmckqB0TCMVi2obmtxYhHuC+JOjDJpBlcz3RkYOg6ppYumRrNWCbCyIsBoKRuC/g0"
"3C1PbLC2ztxiXXJXXKkVeh8RxyW4OZhBDscoBueH2pUzQ0e3xqbCJpo/E/bElMSC6647KvLk6PjGtq2XxvxkVql",
'Referer': 'https://fanyi.baidu.com/',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
'sec-ch-ua': '"Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"',
}
def get_query(word):
#加密sign
query = ctx.call('get_sign', word)
return query
def get_token():
url = 'https://fanyi.baidu.com/'
headers ={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'}
res = requests.get(url, headers=headers, verify=False)
try:
token = re.findall(r'token: \'([0-9a-z]+)', res.text)[0]
except:
token = "41f197e656fc6da95a9ff6261378798f"
return token
def get_lan(word):
url = 'https://fanyi.baidu.com/langdetect'
headers ={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'}
data = {"query": word}
res = requests.post(url, headers=headers, data=data, verify=False)
try:
lan = res.json()['lan']
except:
lan = 'zh'
return lan
translate_type = {"中文": "zh", "英文": "en", "阿拉伯语": ""}
def finally_req(word, lan, want_to_lan):
data = {
"from": lan,
"to": want_to_lan,
"query": word,
"transtype": "realtime",
"simple_means_flag": "3",
"sign": get_query(word),
"token": get_token(),
"domain": "common"
}
response = requests.post('https://fanyi.baidu.com/v2transapi?from={}&to={}'.format(lan, want_to_lan), data=data, cookies=cookies, headers=headers, verify=False)
# print(response.content.decode())
data = json.loads(response.content.decode())
print(data['trans_result']['data'][0]['dst'])
def main():
word = "Operand should contain 1 column(s)"
want_to_lan = 'zh' #中文:zh 英文:en
lan = get_lan(word)
finally_req(word, lan, want_to_lan)
if __name__ == '__main__':
main()
百度翻译接口,完整代码
需积分: 0 21 浏览量
2023-08-07
18:01:18
上传
评论
收藏 5KB ZIP 举报
姚三岁在学爬
- 粉丝: 0
- 资源: 1