【发布时间】:2019-03-25 13:20:04
【问题描述】:
我在node.js 和puppeteer 中编写了一个脚本,以从网页的多个帖子中抓取第一个title。当我执行以下脚本时,它既不会获取任何结果也不会引发任何错误。
这是我的尝试:
const puppeteer = require('puppeteer');
const url = "https://stackoverflow.com/questions/tagged/web-scraping";
(async function main() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('console', obj => console.log(obj._text));
await page.goto(url);
await page.waitForSelector('.question-hyperlink');
await page.$(() => {
let item = $eval('.question-hyperlink').innerText;
console.log(item);
})
await browser.close();
})();
虽然我知道如果我对上面的脚本进行以下更改,它会起作用。但是,我想坚持我上面尝试的方式,以便我能理解
.$eval()在这种情况下是如何工作的。
await page.evaluate(() => {
let item = document.querySelector('.question-hyperlink').innerText;
console.log(item);
})
【问题讨论】:
标签: jquery node.js web-scraping puppeteer