A chensw 2022-03-24 15:25 采纳率: 0%
浏览 167
已结题

我已经下载了pyexecjs和nodejs,为什么还显示未定义?

在爬虫的时候出现的问题
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):#获取到sign的值
            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):
        # 3、提取数据,打印到屏幕
        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)
       # print(rs)
        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


我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月1日
    • 创建了问题 3月24日

    悬赏问题

    • ¥15 校内二手商品转让网站
    • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
    • ¥100 求Web版SPC控制图程序包调式
    • ¥20 指导如何跑通以下两个Github代码
    • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
    • ¥15 C++为什么这个代码没报错运行不出来啊
    • ¥15 一道ban了很多东西的pyjail题
    • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
    • ¥15 C++识别堆叠物体异常
    • ¥15 微软硬件驱动认证账号申请