【问题标题】:Web scraping using Apify使用 Apify 进行网页抓取
【发布时间】:2020-02-25 04:29:50
【问题描述】:

我正在尝试从https://en.wikipedia.org/wiki/List_of_hedge_funds 抓取网址

具体来说,我正在尝试使用 Apify 来抓取该页面并从 HTML 中存在的锚标记返回 URL 列表。在我的控制台中,我希望在名为myValue 的属性中看到存在于目标页面上的一个或多个锚标记的href 属性的值。我还希望在名为title 的属性中看到页面标题。相反,我只看到以下URL 属性及其值。

我的 Apify 演员使用 Puppeteer 平台。所以我使用的是pageFunctionsimilar to the way Puppeteer uses it

下面是我运行 Apify UI 之前的屏幕截图。

页面功能
function pageFunction( context ) {
    // called on every page the crawler visits, use it to extract data from it
    var $ = context.jQuery;
    var result = {
        title: $('.wikitable').text,
        myValue: $('a[href]').text,
    };
    return result;
} 

我做错了什么?

【问题讨论】:

  • 你试过这个吗? apify/web-scraper

标签: javascript web-scraping screen-scraping puppeteer apify


【解决方案1】:

您的代码中有错字,text 是一个函数,因此您需要添加括号:

var result = {
    title: $('.wikitable').text(),
    myValue: $('a[href]').text(),
};

但请注意,这可能不会达到您的预期 - 它会返回所有匹配元素的文本。您可能需要使用 jQuery's each() 函数 (https://api.jquery.com/jquery.each/) 来迭代找到的元素,将其中的一些值推送到数组中,然后从您的页面函数中返回该数组。

【讨论】:

    【解决方案2】:

    页面似乎是由 JavaScript 加载的,所以实际上我必须使用异步代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 2018-02-06
      • 2017-06-23
      • 2011-03-13
      • 2019-04-06
      • 2019-06-23
      • 2011-10-21
      相关资源
      最近更新 更多