gpt4 book ai didi

javascript - node.js 解析 html 文本以获取 javascript 变量的值

转载 作者:行者123 更新时间:2023-11-30 15:13:57 25 4
gpt4 key购买 nike

我成功地完成了此操作以获取我感兴趣的页面的帮助文本。

router.get('/get', function (req, res) {
var pg = 'https://j......com/f/resource'
console.log('get', pg);
requestify.get(pg).then(function (resp) {
console.log(resp.body);
});
});

现在我有了页面的文本,我想解析文本以获取我知道文本中存在的 javascript 变量的值。

<script> var x1 = {"p": {.......bla bla ...}};</script>

我知道有时 <script>标签将包含类型属性;但它并不总是包含类型属性。

当我找到 x1 的值时我如何在我的 javascript 应用程序中使用它作为 myVar 中的值变量。

如果您没有答案,那么您对我应该研究什么的评论/提示将不胜感激。

我希望我能找到一些模块,我可以将整个文本放入其中,并让模块以某种方式为我输出所有变量的值。

最佳答案

所以你没有重新发明轮子,我想使用 JSDOM (及其执行能力)将是最好的。 mock 你拥有的东西:

const express   = require('express');
const jsdom = require("jsdom");
const { JSDOM } = jsdom; // it exports a JSDOM class

// Mock a remote resource
const remote = express()
.use('/', (req, res) => {
res.send('<!DOCTYPE html><html lang="en-US"><head><title>Test document</title><script>var x1 = { "p": { "foo": "bar" } };</script></head><body></body></html>');
})
.listen(3001);

// Create "your" server
const local = express()
.use('/', (req, res) => {
// fetch the remote resource and load it into JSDOM. No need for
// requestify, but you can use the JSDOM ctor and pass it a string
// if you're doing something more complex than hitting an endpoint
// (like passing auth, creds, etc.)
JSDOM.fromURL('http://localhost:3001/', {
runScripts: "dangerously" // allow <script> to run
}).then((dom) => {
// pass back the result of "x1" from the context of the
// loaded dom page.
res.send(dom.window.x1);
});
})
.listen(3000);

然后我收到回复:

{"p":{"foo":"bar"}}

关于javascript - node.js 解析 html 文本以获取 javascript 变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44737699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com