我终于想通了如何使用 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/