代码之家  ›  专栏  ›  技术社区  ›  pearcewg

Craigslist mashups如何获取数据?[关闭]

  •  29
  • pearcewg  · 技术社区  · 16 年前

    我正在做一些关于内容聚合器的研究工作,我很好奇当前的Craigslist聚合器是如何将数据整合到它们的mashup中的。

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

    如果有一个可供参考的URL,那就太完美了!

    8 回复  |  直到 10 年前
        1
  •  15
  •   cfay    16 年前

    为了 AdRavage.com 我使用喜鹊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();
    
        2
  •  13
  •   John Lehmann    13 年前

    另一种方法是使用一个 数据代理 数据交换 服务。

    3taps 是一个测试版服务,它为许多服务(包括Craigslist)提供开发人员API。他们的团队也建立了 Craiggers 以演示此API的用例。创始人GregKidd告诉我,3taps从非Craigslist源获取Craigslist数据,这些源已经被索引和缓存,因此不会对Craigslist造成任何压力。也列出了其他3TAP数据源,但 these stats 弄清楚他们目前是否得到支持。他们的目标是 Democratize the Exchange of Data .

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

        3
  •  4
  •   Rory    14 年前

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

    Craiglook 房屋地图正利用它们来收集结果

        4
  •  4
  •   Nathan Stretch    10 年前

    Craigslist的任何刮擦解决方案的问题是,它们会自动阻止任何“太多”访问它们的IP地址——这通常意味着一天要访问几百次以上。所以一旦你的工具受到欢迎,它就会被关闭。

    这就是为什么只有Craigslist搜索网站持续使用框架(如searchtempest.com和crazedlist.org)或谷歌(如allofcraigs.com)的原因。

    3taps所做的就是从“野外”的第三方来源收集Craigslist列表,比如谷歌和必应缓存。

    编辑:此答案不再是最新的。大多数包含Craigslist搜索结果的分类搜索引擎现在使用Google自定义搜索或雅虎或必应提供的类似解决方案。SearchTempest同时使用两者。allofcraigs现在是adhuntr并使用google。Crazedlist已关闭。

        5
  •  3
  •   Brandon    13 年前

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

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

        6
  •  2
  •   Wael Awada    16 年前

    我猜是刮屏

    我认为还没有Craigslist API。我不认为他们会释放一个……

    所以唯一的方法就是搜集数据。你可以使用curl库和dump regex来获取你想要的页面数据。

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

    等等…

        7
  •  2
  •   Justin Meyer    14 年前
        8
  •  0
  •   pearcewg    16 年前

    在继续研究这一领域的同时,我发现了一个很棒的网站,它可以部分完成我感兴趣的工作:

    Crazedlist

    它使用客户端浏览器的httpreferer,这很有趣,但并不理想。该网站的作者还声称已正式勾选了cl,据我所知。它还提供了与我的需求类似的业务需求的清晰示例,以及为什么我对这个主题感兴趣。

    推荐文章