javascript - 获取元素数组并使用 Puppeteer 导航子元素
问题描述
我需要获得一个具有相同类 ID 的元素数组,在我的例子中是 class = "col-lg-3 col-md-4 col-xs-4 mb-30"。然后从该数组的每个元素中获取各种数据,例如图像。例如,这是该站点:https ://altadefinizione.sale/?s=matrix
我尝试过,const feedHandle = await page.$$('.col-lg-3.col-md-4.col-xs-4.mb-30');
但结果是一个不允许您导航到儿童的句柄。泰来帮忙。
解决方案
尝试在里面做所有的DOM处理page.evaluate()
,这是最简单的方法:
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
try {
const [page] = await browser.pages();
await page.goto('https://altadefinizione.sale/?s=matrix');
const data = await page.evaluate(() => {
const divs = document.querySelectorAll('.col-lg-3.col-md-4.col-xs-4.mb-30');
const imgSources = Array.from(divs, div => div.querySelector('img').src);
return imgSources;
});
console.log(data);
} catch (err) { console.error(err); } finally { await browser.close(); }
推荐阅读
- http - HTTP POST 请求-GSM Arduino
- javascript - Asp.Net Core - 如何在控制器中设置 UrlAction?
- android - 媒体播放器抛出非法状态异常
- ibm-midrange - RPG程序中的儒略日期转换错误
- html - 如何在芯片中显示 selectBox 项目?
- github-actions - 是否可以在语义提交分析器配置中提供自定义类型?
- vba - 为 Power BI Desktop ODBC 数据源动态生成 SQL 语句(由打开时刷新或按钮触发)?
- c# - DateTime.TryParseExact 中的多种格式如何工作?
- jquery - 清除 DataTables 搜索输入后表格没有响应
- c++ - 通过引用传递表达式的结果