29

我正在对内容聚合器进行一些研究工作,我很好奇当前的一些 craigslist 聚合器如何将数据获取到他们的混搭中。

例如,www.housingmaps.com 和现已关闭的 www.chicagocrime.org

如果有可以参考的网址就完美了!

4

8 回答 8

15

对于AdRavage.com,我结合使用 Magpie RSS(提取从搜索返回的数据)和自定义屏幕抓取类来正确填充构建搜索时使用的城市/类别信息。

例如,要提取类别,您可以:

//scrape category data
$h = new http();
$h->dir = "../cache/"; 
$url = "http://craigslist.org/";

if (!$h->fetch($url, 300)) {
  echo "<h2>There is a problem with the http request!</h2>";      
  exit();
}

//we need to get all category abbreviations (data looks like: <option value="ccc">community)
preg_match_all ("/<option value=\"(.*)\">([^`]*?)\n/", $h->body, $categoryTemp);

$catNames = $categoryTemp['2']; 

//return the array of abreviations
if(sizeof($catNames) > 0)   
    return $catNames;   
else
    return $emptyArray = array();
于 2008-10-28T23:42:10.907 回答
13

除了抓取(并被阻止)、使用框架或 Google 搜索之外,另一种方法是使用数据代理数据交换服务。

3taps是一项测试服务,它为包括 Craigslist 在内的许多服务提供开发人员 API。他们的团队还构建了 Craiggers来演示此 API 的用例。创始人 Greg Kidd 告诉我,3taps 从非 Craigslist 来源收集 Craigslist 数据,这些数据已经被索引和缓存,因此不会对 Craigslist 造成任何压力。还列出了其他 3taps 数据源,但这些统计数据不清楚它们当前是否受支持。他们的目标是使数据交换民主化

80legs是一种爬行服务,它提供了一个不太实时但可能更全面的选项。他们的数据转储式服务包括数百个网站的抓取包,包括亚马逊、Facebook 和 Zillow(我目前不相信 Craigslist)。他们较新的努力Datafiniti正在为此类数据提供搜索引擎。

于 2011-12-11T16:31:31.643 回答
4

craigslist 的任何抓取解决方案的问题在于,它们会自动阻止任何“过多”访问它们的 IP 地址——这通常意味着一天超过几百次。因此,一旦您的工具受到任何形式的欢迎,它就会被关闭。

这就是为什么仅有的 craigslist 搜索网站使用框架(如 searchtempest.com 和 crazedlist.org)或谷歌(如 allofcraigs.com)。

3taps 所做的是从“野外”的第三方来源收集 craigslist 列表——例如 Google 和 Bing 缓存。

编辑:这个答案不再是最新的。大多数包含 craigslist 结果的分类搜索引擎现在都使用 Google 自定义搜索或 Yahoo 或 Bing 的类似解决方案。SearchTempest 两者都使用。Allofcraigs 现在是 adhuntr 并使用 Google。Crazedlist 已关闭。

于 2010-01-27T07:05:51.307 回答
4

另一种选择是使用 YQL 或 Yahoo 管道来收集结果。

Craiglook和 HousingMaps 正在使用它们来收集结果

于 2010-02-02T15:37:08.890 回答
3

我从 eBay、Craigslist 和 Zillow 等网站收集了大量数据。每个来源都需要不同的方法来聚合数据。

对于 Craigslist,我使用 RSS 提要获取数据。我只想要特定城市中特定类别的特定数据,而 RSS 提要对我来说效果很好。如果您试图获取所有数据,并且过度使用 RSS 提要,那么 Craigslist 可能会禁止您。此外,您将无法从 Craigslist 提要中获取所有数据,因为提要显示大部分数据,但不是全部。如果您的可靠性不需要达到 100%,那么 RSS 是最简单的方法。

于 2011-12-13T20:04:41.180 回答
2

我猜屏幕抓取

我认为目前还没有 craigslist API。我认为他们不会发布一个 ..

所以唯一的方法是抓取数据..你可以使用 cURL 库和 heave regex 来抓取你想要的页面数据

如果你看到一个链接..访问页面..抓取新页面获取数据并显示或存储它

等等..

于 2008-10-25T22:33:25.070 回答
2

我刚做了一个:

http://cdn.javascriptmvc.com/videos/jobs/craigslist.js

这会产生:

http://cdn.javascriptmvc.com/videos/jobs/craigslist.html

必须在犀牛中运行。

于 2010-01-21T23:00:43.187 回答
0

在继续研究这个领域的同时,我发现了一个很棒的网站,它部分地做了我感兴趣的事情:

疯狂清单

它使用客户端浏览器的HTTPReferer,这很有趣但并不理想。该网站的作者还声称已在 CL 上打勾,我理解。它还给出了与我的需求相似的业务需求的清晰示例,以及我对这个主题感兴趣的原因。

于 2008-11-23T01:27:01.173 回答