javascript - 从 javascript 中获取渲染的 HTML

标签 javascript node.js fetch jsdom

<分区>

我正在尝试从需要呈现的站点获取表格。这导致我获取的数据不完整。正文是空的,因为我猜脚本还没有运行。

最初我想在浏览器中获取所有内容,但我无法做到这一点,因为未设置 CORS header 并且我无权访问服务器。

然后我尝试了一种使用 node.js 以及 node-fetch 和 JSDom 的服务器方法。我阅读了文档并找到了 {pretendToBeVisual: true } 选项,但这并没有改变任何东西。我在下面发布了一个简单的代码:

const fetch = require('node-fetch');
const jsdom = require("jsdom");
const { JSDOM } = jsdom;

let tableHTML = fetch('https://www.travsport.se/uppfodare/visa/200336/starter')
.then(res => res.text())
    .then(body => {
      console.log(body)
      const dom = new JSDOM(body, {pretendToBeVisual: true })
      return dom.window.document.querySelector('.sportinfo_tab table').innerHTML
    })
    .then(table => console.log(table))

我希望输出是表格的 html,但截至目前,我只在响应中获取元数据和脚本,从而在提取 innerHTML 时导致代码崩溃。

最佳答案

为什么不使用 google-chrome headless 呢?

我认为您引用的站点不适用于 --dump-dom,但您可以激活 --remote-debugging-port=9222 并执行任何操作想要像 https://developers.google.com/web/updates/2017/04/headless-chrome 中所说的那样

另一个有用的引用: How can I dump the entire Web DOM in its current state in Chrome?

关于javascript - 从 javascript 中获取渲染的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57358254/

相关文章:

reactjs - 带有 fetch api 的 React hook

使用标签名称从 Tumblr 获取所有帖子的 java 代码

javascript - IE JavaScript 错误 : document. 评估非法 # 字符

javascript - 回调值返回未定义

javascript - 如何在我的 HTML 网页中使用 JSON 文件

node.js - 缩放 Node.js

node.js - 工作线程在第一条消息后不会响应?

javascript - 如何在不调用 Chrome 的 CORS 预检请求的情况下指定 `application/json` Content-Type?

javascript - 从 Objective-C 代码调用 javascript

javascript - 应用程序版本的正则表达式