javascript - Node Js & Puppeteer - 如何选择包裹在 anchor 标签内的文本

标签 javascript html node.js web-scraping puppeteer

我目前正在做一个项目,遇到了一个错误,需要你的帮助!

基本上,我试图选择以下 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/

相关文章:

java - 幂函数计算器介绍

html - electron webview 模拟手机屏幕

html - 在垂直线上垂直居中书写文本

html - 导航栏的宽度问题

javascript - 如何引发属性(property)变更事件?

javascript - onbeforeunload 在 Visual Studio 2013 中不起作用

Node.js puppeteer - 获取由 br 分隔的内容并将项目存储在单独的变量中

javascript - 如何使用 npm 将 PDF.JS 导入 Typescript

mysql - 异步调用 fast-csv 中的存储过程

javascript - 数字数组数组的接口(interface)