使用木偶在新标签页中打开废页

时间:2019-03-28 06:13:53

标签: javascript node.js web-scraping puppeteer

我现在在页面上有一个项目列表,单击每个项目都会打开一个新选项卡,我需要对其进行解析并返回到原始页面,然后单击下一个项目。因此,需要对所有项目重复执行此操作。代码如下:

for(let k =0 ;k<item_arr.length;k++) {

    let item_id = item_arr[k];
    console.log("=====inside for loop======");
    console.log("=====ITEM ID:::::======"+item_id);

    try
    {
        console.log("=====before click======");

        let item_d = await page.$('div[id="'+item_id+'"]');
        await item_d.click();
        console.log("=====after click======");

    }
    catch (e)
    {
        console.log("Error >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> :"+e);
    }

    pages = await browser.pages();
    count = pages.length;
    console.log("==========count number of pages"+count);

}

我收到如下所述的错误:

(node:12280) UnhandledPromiseRejectionWarning: ReferenceError: pages is not defined

那么如何处理刮擦?

1 个答案:

答案 0 :(得分:0)

我认为页面是对象而不是数组,因此需要解决,

Object.keys(pages).length

我加载这样的页面/标签,可能没有用。

const pages = await browser.pages();
await pages[0].setViewport({ width: 1280, height: 1080 })
await pages[0].goto(URL);