我正在对内容聚合器进行一些研究工作,我很好奇当前的一些craigslist聚合器如何将数据放入他们的mashup中。
例如,www.housingmaps.com 和现已关闭的 www.chicagocrime.org
如果有一个可以用作参考的 URL,那就完美了!
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();
抓取(和被阻止)、使用框架或 Google 搜索的替代方法是使用数据代理或数据交换服务。
3taps是一项测试版服务,为许多服务(包括Craigslist)提供开发人员API。 他们的团队还构建了Craiggers来演示此API的用例。 创始人Greg Kidd告诉我,3taps从非Craigslist来源收集Craigslist数据,这些数据已经被索引和缓存,这样它就不会给Craigslist带来任何压力。还列出了其他 3taps 数据源,但这些统计数据不清楚它们目前是否受支持。他们的目标是使数据交换民主化。
80legs 是一种爬网服务,它提供的实时性较低,但可能更全面的选项。 他们的数据转储式服务包括数百个网站网站的抓取包,包括亚马逊,Facebook和Zillow(我目前不相信Craigslist)。他们的新努力Datafiniti正在为此类数据提供搜索引擎。
另一种选择是使用 YQL 或 Yahoo 管道来收集结果。
Craiglook和HousingMaps正在使用它们来收集结果。
craigslist的任何抓取解决方案的问题在于,它们会自动阻止任何访问它们的IP地址"太多" - 这通常意味着每天超过几百次。 因此,一旦您的工具受到任何欢迎,它就会被关闭。
这就是为什么唯一持续使用的craigslist搜索网站要么使用框架(如 searchtempest.com 和 crazedlist.org)要么使用谷歌(如 allofcraigs.com)。
3taps所做的是从"野外"的第三方来源收集craigslist列表 - 例如Google和Bing缓存。
编辑:此答案不再是最新的。 大多数包含craigslist结果的分类广告搜索引擎现在使用Google自定义搜索或雅虎或Bing的类似解决方案。 SearchTempest同时使用两者。 Allofcraigs现在是Adhuntr并使用Google。 Crazedlist已经关闭。
我已经从eBay,Craigslist和Zillow等网站进行了大量数据汇总。每个源都需要不同的方法来聚合数据。
对于Craigslist,我使用RSS提要获取数据。我只想要特定城市特定类别的特定数据,RSS 提要对我来说效果很好。如果你试图获取所有数据,并且你过度使用RSS提要,Craigslist可能会禁止你。此外,您将无法从 Craigslist 源获取所有数据,因为源显示大部分数据,但不是全部。如果您的可靠性不需要 100%,那么 RSS 是最简单的方法。
我猜屏幕抓取
我认为还没有Craigslist API..我认为他们不会发布一个。
所以唯一的方法是抓取数据......你可以使用cURL库和正则表达式来抓取你想要的页面数据。
如果您看到链接..访问该页面..抓取新页面获取数据并显示或存储它
等等..
我刚刚做了一个:
http://cdn.javascriptmvc.com/videos/jobs/craigslist.js
这会产生:
http://cdn.javascriptmvc.com/videos/jobs/craigslist.html
必须在犀牛中运行。
在继续研究这个领域的同时,我发现了一个很棒的网站,它部分地做了我感兴趣的事情:
疯狂列表
它使用客户端浏览器的HTTPReferer,这很有趣,但并不理想。 该网站的作者还声称在 CL 上打勾,我理解这一点。 它还给出了与我的需求相似的业务需求的清晰示例,以及我对这个主题感兴趣的原因。