我有一张具有这种结构的桌子。 我想从 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 结构,建议获取 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'),
}
})
);```