1

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

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

在此处输入图像描述

我的 Apify 演员使用 Puppeteer 平台。所以我正在使用pageFunction 类似于 Puppeteer 使用它的方式

下面是我运行之前 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;
} 

我究竟做错了什么?

4

2 回答 2

0

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

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

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

于 2020-02-25T08:38:20.693 回答
0

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

于 2020-03-01T00:05:42.373 回答