我目前正在做一个项目,遇到了一个错误,需要你的帮助!
基本上,我试图选择以下 anchor 标记内的换行文本
<a href="..." class="productDetailsLink js-productName">Product Name</a>
这是我当前的代码:
await page.waitForSelector('div > div > div > div > div > a[class = "productDetailsLink js-productName"')
.then(() => page.evaluate(() => {
const itemArray = [];
const itemNodeList = document.querySelectorAll('div > div > div > div > div > a[class = "productDetailsLink js-productName"');
itemNodeList.forEach(item => {
const itemTitle = item.querySelectorAll('div > div > div > div > div > a[class = "productDetailsLink js-productName"').innerText;
console.log(itemTitle);
})
} ))
但是,我没有得到任何运气。关于如何抓取此类文本,我已经没有想法了。
最佳答案
如果那些类属性对于那个特定的 anchor 是唯一的 <a href="..." class="productDetailsLink js-productName">Product Name</a>
, 可以使用以下方法:
await page.evaluate(() => {
let anchorText = document.querySelector('a.productDetailsLink.js-productName').innerHTML;
console.info("anchorText::", anchorText);
});
/*OR another way*/
await page.$eval('a.productDetailsLink.js-productName', e => e.innerHTML);
如果有 anchor 列表:
await page.evaluate(() => {
let anchorList = document.querySelectorAll('a.productDetailsLink.js-productName');
anchorList.forEach(e => {
let anchorText = e.innerHTML;
console.info("anchorText::", anchorText);
});
});
关于javascript - Node Js & Puppeteer - 如何选择包裹在 anchor 标签内的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61142197/