[GPT] 网页中某些dom内容是通过 js 数据异步渲染的,nodejs 怎么获取网页解析这些数据
要处理使用JavaScript异步渲染内容的网页,您可以在 JavaScript 蜘蛛中使用 Puppeter 或 Playwright 等无头浏览器来获取网页,然后与动态渲染的内容进行交互。
下面是一个使用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

浙公网安备 33010602011771号