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

我的Apify角色使用Puppeteer平台。所以我使用的是pageFunction similar 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;
} 我做错了什么?
发布于 2020-02-25 16:38:21
你的代码中有一个拼写错误,text是一个函数,所以你需要添加括号:
var result = {
title: $('.wikitable').text(),
myValue: $('a[href]').text(),
};但请注意,这可能不会像您期望的那样-它将返回所有匹配元素的文本。您可能需要使用jQuery's each()函数(https://api.jquery.com/jquery.each/)来迭代找到的元素,将其中的一些值推入数组,然后从页面函数返回数组。
发布于 2020-03-01 08:05:42
页面似乎是由JavaScript加载的,所以实际上我必须使用异步代码。
https://stackoverflow.com/questions/60387528
复制相似问题