码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python使用execjs利用jsdom来执行含有document的js代码方案(上)


    先说一下环境:win7 64位,python3.8.10。

    python使用execjs执行含有document的js代码时,会出现报错:

    execjs._exceptions.ProgramError: TypeError: 'document' 未定义

    原因是纯js代码中是不包含浏览器里对象的(如document、window等),这时就需要一个叫做jsdom的库。全局安装命令为:

    npm i jsdom -g

     

    首先需要安装npm,npm是nodejs 下的包管理器。

    1、登录网址Node.js

    下载后安装

    结果出现如下问题,需要最低Windows8.1才可以。

    尝试下载一个早一点版本的,历史版本下载网址Previous Releases | Node.js 

     下载并解压,我的路径是(C:\Users\Administrator\Downloads\node-v13.14.0-win-x64\node-v13.14.0-win-x64),其中node_modules是模块,node.exe是nodejs程序,npm.cmd是包管理器。

     cmd进入此目录,运行node -v和npm -v,可以。

     现在,cmd进入npm的路径下安装jsdom。

    npm i jsdom -g

     结果报错,看起来还是版本的问题:

    经各种查询研究,jsdom的19.0.0的版本可以。通过下面网址可以看jsdom的各个版本。

    https://www.npmjs.com/package/jsdom?activeTab=versions

    https://www.npmjs.com/package/jsdom/v/19.0.0?activeTab=readme

    安装指定版本(-g是指全局安装)的命令如下:

    npm i jsdom@19.0.0 -g

    安装完成后,cmd进入node路径下运行node

     依次输入命令,可以看到有识别window和document的环境了。

    1. const jsdom=require("jsdom");
    2. const {JSDOM}=jsdom;
    3. const dom = new JSDOM('html><p>Hello worldp>');
    4. dom.window
    5. dom.window.document

    退出node的方式是快捷键:ctrl+c,好像要按两遍。

    至此,jsdom已经在本机安装成功,接下来就要使用python、execjs来使用它。在下节讲。

    备注:要将node和npm添加至环境变量,我的电脑-右键-属性-高级系统设置-然后下图操作

    编辑后,里面应该有内容,在已有内容的最后先加一个英文的;,然后把node和npm的路径C:\Users\Administrator\Downloads\node-v13.14.0-win-x64\node-v13.14.0-win-x64填入即可 

  • 相关阅读:
    【Leetcode】1362. Closest Divisors(配数学证明)
    java计算机毕业设计快递物流管理源程序+mysql+系统+lw文档+远程调试
    网攻西北工业大学的美国安局人员真实身份锁定!
    磁盘的工作方式
    US1MF-ASEMI贴片快恢复二极管US1MF
    激光雷达「超预期」放量
    SQL中:check与 contriate语句约束的区别
    MySQL基础---SQL语句2(WHERE、AND、OR、ORDER BY、COUNT)
    RK3568开发笔记-SATA接口调试
    AI 人工智能之常见概率分布(1)
  • 原文地址:https://blog.csdn.net/kxltsuperr/article/details/132943856
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号