如何通过无限滚动正确抓取网页?

时间:2016-05-06 20:02:13

标签: javascript jquery ajax web-crawler apify

如何从无限滚动的网站抓取数据?

我要做的是从Google Play商店获取所有数据(https://play.google.com/store/apps/category/GAME/collection/topselling_free?hl=en)。

我正在使用Apify(https://www.apify.com/)来浏览Google Play商店;我希望获得“游戏中的顶级免费”的所有链接,然后获得顶级游戏的所有标题和详细信息。

不幸的是,当用户滚动到页面底部时,页面会加载新数据,而我无法弄清楚如何获取新数据。

这是我的页面功能:

function pageFunction(context) {
var $ = context.jQuery;
if (context.request.label === "DETAIL") {
    context.skipLinks();
    if($('.details-info .info-container .info-box-top .document-title .id-app-title').length >= 1) {
        return {
            title: $('.details-info .info-container .info-box-top .document-title .id-app-title').text(),
            publisher: $('.details-info .info-container .info-box-top .document-subtitles .primary').text(),
            genre: $('.details-info .info-container .info-box-top .document-subtitles .category').text(),
            rating: $('.details-wrapper .details-section .rating-box .score').text()
        };
    }
} else {
    context.skipOutput();
    $.post("https://play.google.com/store/apps/category/GAME/collection/topselling_free?hl=en&authuser=0");
}

}

如何加载其他游戏并获取他们的链接,以便我可以在游戏页面上获取他们的详细信息?

非常感谢示例或示例代码。

1 个答案:

答案 0 :(得分:2)

在高级设置下有一个名为无限滚动高度的选项,用于从无限滚动中抓取内容。查看Apify documentation