我正在尝试向页面发送请求并抓取整个DOM。基本上是爬行。在这个网站上,有一个变量直接加载到带有一些数据的HTML(不是脚本文件)中。使用我使用request
的NodeJS后端,我将如何请求此页面并返回变量的数据?这是一个例子:
http://some-page.com/index.html
<html>
<head>
<script>
var my_var = {
title: "Good title",
description: "Nice description",
page: 5
};
</script>
</head>
</html>
如果我访问该网站,请打开控制台并输入my_var
我可以在控制台中看到内容,因此它是一个全局变量。
我该怎么办?如果需要,我可以使用另一个请求库。
答案 0 :(得分:2)
您正在寻找jsdom:https://github.com/tmpvar/jsdom
const dom = new JSDOM(`<body>
<script>document.body.appendChild(document.createElement("hr"));</script>
</body>`, { runScripts: "dangerously" });
// The script will be executed and modify the DOM:
dom.window.document.body.children.length === 2;
它还附带一个虚拟控制台
虚拟控制台
与网络浏览器一样,jsdom具有“控制台”的概念。这个记录 通过脚本执行从页面直接发送的信息 文档内部,以及来自jsdom的信息 实施本身。