在爬虫的时候出现的问题
import requests
import json
import execjs
class BaidufySpider:
def __init__(self):
self.url = "https://fanyi.baidu.com/?aldtype=16047#zh/en/%E5%B7%A5%E7%A8%8B"
self.header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
"Cookie":"PSTM=1647918716; BAIDUID=E7279D22D526B134F61E3DBDF21DF257:FG=1; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; BIDUPSID=DE804291AF5CADBA2CB4F7B10C87B204; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; APPGUIDE_10_0_2=1; H_PS_PSSID=31660_26350; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1647918721,1647920343; BAIDUID_BFESS=C5D1EE5E25F0E6B967070CF3DB3B0D44:FG=1; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1647921955; ab_sr=1.0.1_YjgwNTAwOWY1YzU3ZThlMjY5ODA5ODVjMDA2NDU4ODA3YTVkNDQwNTM1MDhiYTcxYThmMmUxMWQ5MzRiODdmMmVkZjI5ZGVjNmZmZjlmYWExYjAxNWQ1NTgyMWFjOWIwNzVlYjcyMTIwNTE5ODYwOTcyYzMwYWU0OTM0N2I4MDA2MzA0NzM0MDM4NDEyZGU2YWE3Y2M1N2I2ZTZkNGM0Yg=="
}
def set_data(self,word,sign):
data = {
"from":"zh",
"to":"en",
"query":word,
"transtype": "translang",
"simple_means_flag": "3",
"sign":sign,
"token":"03be80f9df414e4585a73295eda08d05",
"domain": "common"
}
return data
def get_sign(self,word):
with open("baidufy.js","r") as f:
js_text=f.read()
sign=execjs.compile(js_text).call("e",word)
return sign
def send_post(self,data):
resonse = requests.post(self.url,data = data,headers = self.header)
return resonse.content.decode()
def get_result(self,rs):
rs_dict = json.loads(rs)
result = rs_dict["trans_result"]["data"][0]["dst"]
return result
def run(self):
word = input("请输入你要翻译的内容:")
sign=self.get_sign(word)
data=self.set_data(word,sign)
rs = self.send_post(data)
result = self.get_result(rs)
print("翻译的网络是:",result)
if __name__ == '__main__':
baidu = BaidufySpider()
baidu.run()
请输入你要翻译的内容:网络
Traceback (most recent call last):
File "E:\P\python document\translate.py", line 51, in <module>
baidu.run()
File "E:\P\python document\translate.py", line 42, in run
sign=self.get_sign(word)
File "E:\P\python document\translate.py", line 28, in get_sign
sign=execjs.compile(js_text).call("e",word)
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_abstract_runtime_context.py", line 37, in call
return self._call(name, *args)
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_external_runtime.py", line 92, in _call
return self._eval("{identifier}.apply(this, {args})".format(identifier=identifier, args=args))
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_external_runtime.py", line 78, in _eval
return self.exec_(code)
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_abstract_runtime_context.py", line 18, in exec_
return self._exec_(source)
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_external_runtime.py", line 88, in _exec_
return self._extract_result(output)
File "D:\Pythoninstalldocument\lib\site-packages\execjs\_external_runtime.py", line 167, in _extract_result
raise ProgramError(value)
execjs._exceptions.ProgramError: TypeError: 'console' 未定义
进程已结束,退出代码为 1
我的解答思路和尝试过的方法
我想要达到的结果