gpt4 book ai didi

node.js - 使用 Puppeteer 获取所有 p 标签

转载 作者:太空宇宙 更新时间:2023-11-04 03:02:18 25 4
gpt4 key购买 nike

我正在尝试使用 Puppeteer 从网站获取所有段落标签,然后从中提取文本。然而,pTags 始终是一个空数组,我不知道为什么。

这是我的代码。

const puppeteer = require('puppeteer')

(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.newyorker.com/news/letter-from-trumps-washington/the-worst-hour-of-his-entire-life-cohen-manafort-and-the-twin-courtroom-dramas-that-changed-trumps-presidency');

const pTags = await page.evaluate(() => Array.from(document.querySelectorAll('p')));

console.log(pTags);

browser.close();
})();

最佳答案

Official Documentation 中所述:

If the function passed to the page.evaluate returns a non-Serializable value, then page.evaluate resolves to undefined.

您正在尝试返回 NodeList (非 Serializable 值)通过 querySelectorAll() ,因此,您的 page.evaluate()函数正在返回 undefined .

相反,您可以获得 ElementHandle使用 page.$$()p 元素数组或page.$x() :

const pTags = await page.$$('p');
const pTags = await page.$x('//p');

关于node.js - 使用 Puppeteer 获取所有 p 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51976184/

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