木偶问题:querySelectorAll() 只返回一个元素
puppeteer problem: querySelectorAll() returning only one element
我想提取关于亚马逊产品的问题和答案。但是我从我尝试过的代码中只得到数组中的 1 个元素。
我已经在实际浏览器中尝试 运行 querySelectorAll() 但它 returns 9 个元素是正确的。
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
const pageURL = "https://www.amazon.in/Espoir-Analog-Blue-Dial-Watch-ESP12457/dp/B07417987C/ref=sr_1_1?s=watches&rps=1&ie=UTF8&qid=1546787547&sr=1-1&refinements=p_98%3A10440597031%2Cp_n_material_browse%3A1480914031|1480915031";
await page.goto(pageURL, { waitUntil: "networkidle2" });
const QAs = await page.evaluate(() => {
let elements = Array.from(document.querySelectorAll("div.a-fixed-left-grid-col .a-col-right"));
let links = elements.map(element => {
return element.innerText
})
return elements;
});
console.log("q=", QAs);
您需要滚动到元素容器并等待 Ajax 请求完成并呈现 QA
await page.evaluate(() => {
document.querySelector('#ask_lazy_load_div').scrollIntoView();
});
await page.waitForSelector(".askTopQandA", {timeout: 10000}); // 10 seconds
const QAs = await page.evaluate(() => {....
我想提取关于亚马逊产品的问题和答案。但是我从我尝试过的代码中只得到数组中的 1 个元素。
我已经在实际浏览器中尝试 运行 querySelectorAll() 但它 returns 9 个元素是正确的。
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
const pageURL = "https://www.amazon.in/Espoir-Analog-Blue-Dial-Watch-ESP12457/dp/B07417987C/ref=sr_1_1?s=watches&rps=1&ie=UTF8&qid=1546787547&sr=1-1&refinements=p_98%3A10440597031%2Cp_n_material_browse%3A1480914031|1480915031";
await page.goto(pageURL, { waitUntil: "networkidle2" });
const QAs = await page.evaluate(() => {
let elements = Array.from(document.querySelectorAll("div.a-fixed-left-grid-col .a-col-right"));
let links = elements.map(element => {
return element.innerText
})
return elements;
});
console.log("q=", QAs);
您需要滚动到元素容器并等待 Ajax 请求完成并呈现 QA
await page.evaluate(() => {
document.querySelector('#ask_lazy_load_div').scrollIntoView();
});
await page.waitForSelector(".askTopQandA", {timeout: 10000}); // 10 seconds
const QAs = await page.evaluate(() => {....