标签:dom htm new com cti 沙箱 blank tar location
jsdom
中文文档: https://segmentfault.com/a/1190000014844043
英文文档:https://www.w3school.com.cn/js/js_htmldom_elements.asp
jsdom是一个纯粹由 javascript 实现的一系列 web标准,特别是 WHATWG 组织制定的DOM和 HTML 标准,用于在 nodejs 中使用
执行脚本
jsdom最强大的功能是它可以在jsdom中执行脚本。这些脚本可以修改页面的内容并访问jsdom实现的所有Web平台API。
但是,这在处理不可信内容时也非常危险。 jsdom沙箱并不是万无一失的,在DOM的<script>
内部运行的代码如果足够深入,就可以访问Node.js环境,从而访问您的计算机。 因此,默认情况下,执行嵌入在HTML中的脚本的功能是禁用的
要在页面内启用脚本,可以使用runScripts:"dangerously"
选项
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const fs = require(‘fs‘) // 读取文件
fs.readFile(‘crawl/yrx/js_test.html‘, ‘utf8‘, function(err, data){
const dom = new JSDOM(data, {
url: ‘http://match.yuanrenxue.com/match/2‘,
referrer: ‘http://match.yuanrenxue.com/match/2‘,
contentType: "text/html",
userAgent: "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36",
includeNodeLocations: true,
runScripts:"dangerously" // 运行js脚本
});
console.log(dom.window.document.cookie);
dom.window.close()
})
标签:dom htm new com cti 沙箱 blank tar location
原文地址:https://www.cnblogs.com/kai-/p/14553971.html