[英]Access specific index of array returned from web scrape using puppeteer
Here is my script - it scrapes amazon to check for product availability using puppeteer这是我的脚本 - 它使用 puppeteer 抓取亚马逊以检查产品可用性
const puppeteer = require('puppeteer');
//URL
scrape('https://www.amazon.co.uk/PlayStation-9395003-5-Console/dp/B08H95Y452/ref=sr_1_1?dchild=1&keywords=ps5&qid=1613570801&sr=8-1');
/**
*
* Scrape PS5
*
*/
async function scrape(url)
{
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);
//get availability
const [el2] = await page.$x('//*[@id="availability"]/span');
const txt1 = el2.getProperty('textContent');
const rawTxt1 = (await txt1)._remoteObject.value;
//log data
console.log({rawTxt1});
//close browser
browser.close();
}
It returns this to the console after i log it我登录后它会将其返回到控制台
i want it to return only 'currently unavailable'我希望它只返回“当前不可用”
Try this尝试这个
async function scrape(url)
{
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(url);
await page.waitForSelector("div#availability")
const result = await page.evaluate(()=>{
return Array.from(document.querySelectorAll("div#availability span.a-size-medium")).map((el)=> el.innerText)
});
//log data
console.log(result)
//close browser
browser.close();
}
Output: Output:
["Currently unavailable."]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.