[GPT] 网页中某些dom内容是通过 js 数据异步渲染的,nodejs 怎么获取网页解析这些数据

通过llama.cpp与羊驼聊天的网页界面- 详解 Serge 的启动使用

 

要处理使用JavaScript异步渲染内容的网页,您可以在 JavaScript 蜘蛛中使用 PuppeterPlaywright 等无头浏览器来获取网页,然后与动态渲染的内容进行交互。

 

下面是一个使用Puppeteer的例子:

const puppeteer = require('puppeteer');
(async ()
=> { // Launch a headless browser const browser = await puppeteer.launch(); const page = await browser.newPage();
// Navigate to the webpage await page.goto('http://example.com');
// Wait for the asynchronous content to load await page.waitForSelector('#async_content');
// Extract the data from the dynamically rendered content const data = await page.evaluate(() => { const asyncContent = document.querySelector('#async_content'); return asyncContent.innerHTML; });
// Process or parse the extracted data as needed console.log(data);
// Close the browser await browser.close(); })();

 

在本例中,Puppeter 用于启动无头浏览器并导航到所需的网页。我们使用 page.waitForSelector() 来等待包含异步呈现内容的特定元素出现在页面上。

然后,我们使用 page.eevaluate() 在页面的上下文中执行自定义 JavaScript 代码,并提取包含动态呈现内容的元素的内部 HTML。

您可以修改 page.eevaluate() 函数以提取特定数据或对内容执行任何必要的解析或操作。

 

在运行代码之前,请记住使用 npm install puppeteer 或 yarn  add puppeteer 安装 Puppeteer。

 

Cool:ChatAI

Link:https://www.cnblogs.com/farwish/p/17521445.html

posted on 2023-07-02 21:24  ercom  阅读(105)  评论(0编辑  收藏  举报