【发布时间】:2018-09-04 15:08:15
【问题描述】:
根据https://github.com/GoogleChrome/puppeteer/issues/628,我应该能够从 获取所有链接:
const hrefs = await page.$$eval('a', a => a.href);
但是当我尝试一个简单的:
console.log(hrefs)
我只得到:
http://example.de/index.html
... 作为输出,这意味着它只能找到 1 个链接?但是页面在源代码/DOM 中肯定有 12 个链接。为什么都找不到?
小例子:
'use strict';
const puppeteer = require('puppeteer');
crawlPage();
function crawlPage() {
(async () => {
const args = [
"--disable-setuid-sandbox",
"--no-sandbox",
"--blink-settings=imagesEnabled=false",
];
const options = {
args,
headless: true,
ignoreHTTPSErrors: true,
};
const browser = await puppeteer.launch(options);
const page = await browser.newPage();
await page.goto("http://example.de", {
waitUntil: 'networkidle2',
timeout: 30000
});
const hrefs = await page.$eval('a', a => a.href);
console.log(hrefs);
await page.close();
await browser.close();
})().catch((error) => {
console.error(error);
});;
}
【问题讨论】:
标签: javascript node.js web-crawler puppeteer headless-browser