craigslist mashup如何获取数据?

时间:2008-10-25 22:32:43

标签: mashup aggregators

我正在对内容聚合器进行一些研究工作,我很好奇当前的一些craigslist聚合器如何将数据输入到mashup中。

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

如果有一个可用于参考的网址,那将是完美的!

8 个答案:

答案 0 :(得分: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();

答案 1 :(得分:13)

抓取(并阻止),使用框架或Google搜索的替代方法是使用数据代理数据交换服务。

3taps是一项测试版服务,为许多服务提供开发人员API,包括Craigslist。他们的团队还构建了Craiggers来演示此API的用例。创始人Greg Kidd告诉我,3taps从非Craigslist来源收集Craigslist数据,它已经被索引和缓存,因此它不会给Craigslist带来任何压力。还列出了其他3taps数据源,但these stats不清楚它们目前是否受支持。他们的目标是Democratize the Exchange of Data

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

答案 2 :(得分:4)

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

这就是为什么唯一一个持续使用框架(如searchtempest.com和crazedlist.org)或谷歌(如allofcraigs.com)的搜索网站。

3taps的作用是收集来自第三方来源的疯狂名单 - 例如Google和Bing缓存等。

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

答案 3 :(得分:4)

替代选项是使用YQL或Yahoo管道来收集结果。

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

答案 4 :(得分:3)

我从eBay,Craigslist和Zillow这样的网站上做了很多数据汇总。每个来源都需要不同的方法来聚合数据。

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

答案 5 :(得分:2)

我在猜屏幕抓取

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

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

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

依旧......

答案 6 :(得分:2)

答案 7 :(得分:0)

在继续研究这个领域的同时,我找到了一个很棒的网站,其中部分内容是我感兴趣的:

Crazedlist

它使用客户端浏览器的HTTPReferer,这很有趣但不理想。该网站的作者还声称已经在CL上做了很好的选择,据我所知。它还提供了明确的业务需求示例,这些示例与我的需求类似,以及为什么我对此主题感兴趣。