提问人:Gacha SS 提问时间:11/15/2023 最后编辑:YaroslavmGacha SS 更新时间:11/18/2023 访问量:43
使用Puppeteer从表格TD中抓取段落内部文本和图像标题
use puppeteer to scrape paragraph inner text and image title from table td
问:
我有一个具有这种结构的表。 我想从带有类“描述”的 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标题?
答:
0赞
Yaroslavm
11/18/2023
#1
通过提供的 HTML 结构,我建议获取 td 元素并在其上执行映射。$$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'),
}
})
);```
评论