5

我可以使用 Puppeteer 获取所有页面代码,但我如何才能仅获取纯文本?没有标签?

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://google.com');
  console.log(await page.content()); //Get all code
  await browser.close();
})();
4

2 回答 2

4

我还没有尝试过,但$eval可能对你有用:

await page.$eval('*', el => el.innerText);
于 2017-10-18T14:54:56.357 回答
0

伙计们。我在我的文章中收集了一些可能的变体: 如何使用 Puppeteer 从网页中获取所有文本?

为了简短起见:

  1. innerText变体。适用于大多数网页,但不是全部
await page.$eval('*', el => el.innerText);
  1. 选择文本变体。适用于更多网页
await page.$eval('*', (el) => {
        const selection = window.getSelection();
        const range = document.createRange();
        range.selectNode(el);
        selection.removeAllRanges();
        selection.addRange(range);
        return window.getSelection().toString();
    });
  1. 使用您选择的第三方库(如html-to-text
于 2021-09-05T13:58:19.180 回答