javascript - Puppeteer 循环并转换为对象
问题描述
我是 puppetetteer 库的新手,我正在尝试遍历亚马逊评论并将每条评论保存为一个对象。
它似乎正在工作,但它只会获取第一条评论并完成。
async function scrapeProduct(urls) {
urls.map(async function(url, index) {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.goto(url);
await page.waitFor(5000);
const result = await page.$$eval('.filterable-reviews-content', rows => {
return rows.map(review => {
const properties = {};
const titleElement = review.querySelector(".review-title-content span");
properties.title = titleElement.innerText;
properties.ranking = review.querySelector(".review-title-content span");
// return properties;
})
})
})
我的另一个尝试是这个......它抓住了所有东西,但把它全部推到了一个字符串上。
let content = await page.evaluate(() => {
let commentWrapper = [...document.querySelectorAll('.filterable-reviews-content')];
return commentWrapper.map(item => {
return item.textContent.replace(/(\r\n|\n|\r)/gm,"")
} );
});
我真的很感激帮助。谢谢你!
解决方案
我认为你需要改进你的选择器。这可能有效
const result = await page.$$eval('.filterable-reviews-content .a-section.review', rows => {
return rows.map(review => {
const properties = {};
const titleElement = review.querySelector(".review-title-content span");
properties.title = titleElement.innerText;
properties.ranking = review.querySelector(".review-title-content span");
return properties;
})
})
推荐阅读
- javascript - 将 JSON 数据插入 D3 气泡图可视化
- java - Android WebRTC 无法连接到 coTURN 服务器:错误 401:未经授权
- java - Java 动态 Web 服务在项目目录中找不到文件
- azure - Unable to store items with arrays in azure cosmosdb
- java - 从旧的二维数组中删除 null 并将非 null 元素放入新的二维数组中
- python - 用于二元分类 CNN 的 Tensor Flow Conv1D
- ios - Nativescript如何在屏幕底部隐藏标签栏
- python - 使用 Python 调整大小重命名和旋转多个图像
- javascript - 比较今天日期和 ES6 ReactJS 中的保留日期
- odbc - MonetDB Mapi 库数据插入