使用 puppeteer 从表 td 中抓取段落内部文本和图像标题

问题描述 投票:0回答:1

我有一张具有这种结构的桌子。 我想从 td 中抓取“描述”类的图像标题和段落文本。 我尝试了几种方法但没有运气。 请帮助我解决这些问题,我真的很累。

我认为我的问题很清楚,但到目前为止我已经

 let descs = await page.evaluate(() => {
        let desc = Array.from(document.querySelectorAll('tr.even td.description p'))
        return desc.filter((p) => p.innerText !== "").map(p => p.innerText.replace((/  |\r\n|\n|\r/gm),""));
   });                                                                                                                              

通过这段代码,我得到了段落文本,但我怎样才能得到img标题?

html-table puppeteer element href scrape
1个回答
0
投票

通过提供的 HTML 结构,建议获取 tr 元素并执行

$$eval
并对其进行映射。

其中 texts 是为

p
title
定义的函数,您可以使用
querySelector
元素中的
img[src]
选择器获得
td

await page.waitForSelector('tr.even td.description');
const data = await page.$$eval('tr.even td.description', tds =>
      tds.map(td => {
        return {
          texts: Array.from(td.querySelectorAll('p')).filter((p) => p.innerText !== "").map(p => p.innerText.replace((/  |\r\n|\n|\r/gm),"")),
          title: td.querySelector('img[src]')?.getAttribute('title'),
        }
      })
    );```
© www.soinside.com 2019 - 2024. All rights reserved.