【问题标题】:Apify array results displayed in one row instead of separate rowsApify 数组结果显示在一行而不是单独的行
【发布时间】:2020-04-30 22:15:25
【问题描述】:

我正在测试 Apify 网络爬虫,我能够看到结果,但它显示在一行中。我正在迭代内容以从此页面获取标题 - ...并将其推送到数组并最终返回数组。我希望看到在单独的行中返回的标题。如果有人能指出正确的方向,我将不胜感激。

这是我的页面功能:

async function pageFunction(context) {
    // jQuery is handy for finding DOM elements and extracting data from them.
    // To use it, make sure to enable the "Inject jQuery" option.
    const $ = context.jQuery;
    var results = [];
    $('.ms-srch-group-content').each(function(){
        results.push({
            title: $(this).find('.ms-srch-item-link').text().trim(),
            date: $(this).find('.soi-news-attributes').text().trim(),
        });
    });
    return results;
}

结果如下: ...

正如您在结果截图中看到的那样,所有标题都显示在一行中。

【问题讨论】:

    标签: javascript jquery web-scraping apify


    【解决方案1】:

    这里的问题是你试图迭代元素本身,而你想要实现的目标需要向下移动一个级别。

    也就是说 - 您只需将 .ms-srch-group-content 更改为 .ms-srch-group-content > div[name=Item] 即可按预期工作。

    【讨论】:

      【解决方案2】:

      看起来 .ms-srch-group-content 是组内容的选择器,因此您会收到一条记录而不是数组。 我猜你需要向下移动到下一个 div - .ms-srch-item

      $('.ms-srch-item').each(function(){
      

      【讨论】:

        猜你喜欢
        • 2020-03-21
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 2015-06-30
        • 2021-12-30
        • 1970-01-01
        • 1970-01-01
        • 2016-10-27
        相关资源
        最近更新 更多