原因:主要是sign与Cookie,每次重新输入字符串的时候就会发生变化
解决:必须要添加对应的Cookie,才可以取到数据,否则就发生异常997
首先:使用Android的方式:
查看:
代码:使用JSON将数据取出来
import requests
import json
# ctrl+alt+L
# 注意头部必须添加cookie,否则异常:997
headers = {
"user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Mobile Safari/537.36",
"cookie": "BIDUPSID=A8DEAA573FFED7DD56EF166E375515B3; PSTM=1600160803; BAIDUID=A8DEAA573FFED7DD99F8C100C4C915EC:FG=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_WISE_SIDS=148077_152522_152776_154615_149356_150967_152055_156816_156286_150775_154258_148867_154606_151897_153628_156623_157263_146871_154172_151016_156712_156516_127969_154175_150772_152982_155908_146732_157996_131424_154038_155530_107314_156876_156213_154189_155344_152408_158025_157790_144966_157406_154213_157814_139882_156099_155848_154146_147551_157028_157162_157697_152310_154270_155864_110085_157006; Hm_lvt_afd111fa62852d1f37001d1f980b6800=1601369898; delPer=0; PSINO=5; H_PS_PSSID=32816_32617_1423_32791_7567_7543_31253_32723_32230_7517_7605_32116_31708_22157; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1600840072,1600929110,1601365704,1601439452; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1601439452; __yjsv5_shitong=1.0_7_85fcee6d0cea49e6330c0566145bf9aaf4ba_300_1601439449138_122.235.174.76_45ffc994; yjs_js_security_passport=b1f03c61ebba307909dda538856d3d211cf06779_1601439449_js"
}
data = {
"query": "好好学习,我学习python",
"from": "zh",
"to": "en",
"token": "63cc1a0e6c0d623bbe3e11972fcbf7d9",
"sign": "425577.171352"
}
# url
url_post = "https://fanyi.baidu.com/basetrans"
# 请求数据
response = requests.post(url_post, data=data, headers=headers)
# 输出 error=997 发生异常(有token加密和sign标记)
# print(response.content.decode())
result = json.loads(response.content.decode())
# # 显示数据
print(result["trans"][0]["dst"])
执行效果: