如何使用puppeteer(nodejs applicatie)抓取instagram帖子的网址

问题描述 投票:1回答:1

通过对当前Instagram api的所有更改,我试图构建一个刮板。环顾四周后,我发现了p。尽管这似乎很直截了当,但我遇到了一个问题,似乎无法解决问题。

问题如下:我知道帖子的div标签是(.v1Nh3.kIKUG._bz0w),以及如何调用它(元素=等待页面。$$('。v1Nh3.kIKUG._bz0w');)

如果我正确理解$$函数,则应该向我返回一个包含“页面”上所有帖子的数组的诺言。

我的第一个问题是这个假设是否正确,而我的第二个问题是如何获取数组。 (如果一切正常,那么如何获取子href中包含的重定向URL)

问候,

Daneel

javascript node.js puppeteer
1个回答
1
投票

为了获得具有特定类的元素并返回它们,您必须使用page.evaluate方法。这是一个异步调用,它返回一个Promise。

因此,在您的用例中,它应该看起来像这样:

const result = await page.evaluate(() => {
    let elements = document.querySelectorAll('.v1Nh3.kIKUG._bz0w');
    //elements holds a NodeList so it is needed 
    //to convert it into an array
    let elementsArr = Array.prototype.slice.call(elements);
    return elementsArr;
});
© www.soinside.com 2019 - 2024. All rights reserved.