gpt4 book ai didi

javascript - 所有脚本和页面加载完成后如何获取所有html数据? ( puppeteer 师)

转载 作者:行者123 更新时间:2023-11-30 19:50:10 25 4
gpt4 key购买 nike

我终于想通了如何使用 Node.js。安装了所有库/扩展。所以 puppeteer 正在工作,但就像以前使用 Xmlhttp 一样......它只获取页面的模板/正文,没有需要的信息。在浏览器(Web 应用程序?)中打开页面几秒钟后,页面上的所有脚本都会启动。加载整个页面后,我需要在某些标签内获取信息。另外,我会问,是否可以使用纯 JavaScript,因为我不像代码那样使用 jQuery。所以它对我来说难度加倍......

这是我目前所拥有的。

const puppeteer = require('puppeteer');
const $ = require('cheerio');
let browser;
let page;

const url = "really long link with latitude and attitude";

(async () => puppeteer
.launch()
.then(await function(browser) {
return browser.newPage();
})
.then(await function(page) {
return page.goto(url).then(function() {
return page.content();
});
})
.then(await function(html) {
$('strong', html).each(function() {
console.log($(this).text());
});
})
.catch(function(err) {
//handle error
}))();

我只得到强标签内的模板默认正文元素。但它应该包含比仅 10 项更多的数据。

最佳答案

如果你想要完整的 html 与 inspect 相同?在这里:

    const puppeteer = require('puppeteer');

(async function main() {
try {
const browser = await puppeteer.launch();
const [page] = await browser.pages();

await page.goto('https://example.org/', { waitUntil: 'networkidle0' });
const data = await page.evaluate(() => document.querySelector('*').outerHTML);

console.log(data);

await browser.close();
} catch (err) {
console.error(err);
}
})();

关于javascript - 所有脚本和页面加载完成后如何获取所有html数据? ( puppeteer 师),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563410/

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