在网络抓取节点 js、Puppeteer、Cheerio 时获取页面中的主要内容
Get main content in a page while web scraping node js, Puppeteer, Cheerio
我有一个使用 Node JS 的项目,用于网络抓取,我将不得不从主要内容中抓取标题和文本。但问题是当没有 aside
或 main
标签或 class/id/role 命名为 aside
或 main
时,我无法确定哪个是主要内容。我正在使用 Puppeteer 和 Cheerio 库。我试过使用 Mercury Web Parser 但它有自己的问题。 Like It 没有 return 来自 Wordpress 上使用 Elementor 主题构建器构建的页面的任何内容。如果有人知道如何区分主要内容和网页的其余部分,那将非常有帮助。
您可以从 Mozilla 检出 Readability JS 库。他们用于 reader 视图。
尝试探索更多关于 CSS 选择器和特异性的信息。
如果您正在抓取 Elementor,请务必对选择器使用此技巧:
对 DOM.
中的所有内容使用 data-elementor-(attributename)
属性
const mainContent = await page.waitForElement('[data-elementor-type="wp-page"]', {visible: true, timeout: 0})
我有一个使用 Node JS 的项目,用于网络抓取,我将不得不从主要内容中抓取标题和文本。但问题是当没有 aside
或 main
标签或 class/id/role 命名为 aside
或 main
时,我无法确定哪个是主要内容。我正在使用 Puppeteer 和 Cheerio 库。我试过使用 Mercury Web Parser 但它有自己的问题。 Like It 没有 return 来自 Wordpress 上使用 Elementor 主题构建器构建的页面的任何内容。如果有人知道如何区分主要内容和网页的其余部分,那将非常有帮助。
您可以从 Mozilla 检出 Readability JS 库。他们用于 reader 视图。
尝试探索更多关于 CSS 选择器和特异性的信息。
如果您正在抓取 Elementor,请务必对选择器使用此技巧:
对 DOM.
data-elementor-(attributename)
属性
const mainContent = await page.waitForElement('[data-elementor-type="wp-page"]', {visible: true, timeout: 0})