【问题标题】:Apify - How to scrape multiple pages (request queue) with a dynamic "next page" button?Apify - 如何使用动态“下一页”按钮抓取多个页面(请求队列)?
【发布时间】:2020-12-11 17:01:37
【问题描述】:

我正在设置一个新的网络抓取工具,使用 Apify 来抓取带有分页的页面。 通常,我会使用 request queueLink SelectorPseudo-URL 方法。但是,我尝试抓取的页面具有动态的“下一页”按钮,并且链接是通过 javascript 函数触发的。

告诉 Apify 的网络抓取工具转到下一页的最佳方法是什么?

有什么方法可以模拟手动点击按钮?

或者使用 URL 末尾的数字序列 (www.domain.com/discover/recent?page=2)?

【问题讨论】:

    标签: web-scraping apify


    【解决方案1】:

    查看这个特定的网站 - 看起来每个下一页(如您已经提到的)在 url 中都有 ?page=<i>,因此您可以使用 context.enqueueRequest() 在页面末尾功能中将下一页排入队列。

    另一种选择是使用带有 xhr 链接的cheerio 爬虫,看起来像这样:https://webflow.com/api/discover/sites/recent?limit=12&offset=0&sort=&cloneable=false&tag=,其中偏移量为 0、12、24 等。这样您将获得一组结构化的 json 作为响应(代表页面上加载的 12 个项目),并且您还可以保存一些计算单元,因为您并不真的需要浏览器。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      如果可以,请使用 URL。它将允许您拆分每个页面的关注点,这是使用 Apify 的惯用方式。您可以使用 await context.enqueueRequest({ url }) 将任何 URL 加入队列

      如果页面没有 URL,那么您必须在单个页面功能中单击它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-21
        • 1970-01-01
        • 2021-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多