В настоящее время я работаю над некоторыми личными проектами, и мне просто пришла в голову идея сделать слом амазонки, чтобы я мог получить информацию о продуктах, такую как название и цена.
Я обнаружил, что наиболее последовательным представлением, в котором использовались одинаковые идентификаторы для названия продукта и цены, было мобильное представление, поэтому я его и использую.
Проблема в том, что я не могуполучить цену.
Я сделал точно такой же селектор запросов для имени (который работает) в цене, но безуспешно.
const puppeteer = require('puppeteer');
const url = 'https://www.amazon.com/dp/B01MUAGZ49';
(async () => {
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.setViewport({ width: 360, height: 640 });
await page.goto(url);
let producData = await page.evaluate(() => {
let productDetails = [];
let elements = document.querySelectorAll('#a-page');
elements.forEach(element => {
let detailsJson = {};
try {
detailsJson.name = element.querySelector('h1#title').innerText;
detailsJson.price = element.querySelector('#newBuyBoxPrice').innerText;
} catch (exception) {}
productDetails.push(detailsJson);
});
return productDetails;
});
console.dir(producData);
})();
Я должен получить имя ицена в console.dir но сейчас я получаю только
[ { name: 'Nintendo Switch – Neon Red and Neon Blue Joy-Con ' } ]