首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用puppeteer访问web抓取返回的数组的特定索引

使用puppeteer访问web抓取返回的数组的特定索引
EN

Stack Overflow用户
提问于 2021-02-18 02:46:41
回答 1查看 30关注 0票数 0

这是我的脚本-它抓取amazon以使用puppeteer检查产品的可用性

代码语言:javascript
复制
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();

}

在我登录后,它会将其返回到控制台

我希望它只返回“当前不可用”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-18 03:23:55

尝尝这个

代码语言:javascript
复制
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();

}

输出:

代码语言:javascript
复制
["Currently unavailable."]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66248149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档