Как Craigslist Mashup получить данные?
Я занимаюсь исследованием агрегаторов контента, и мне любопытно, как некоторые из нынешних агрегаторов craigslist переносят данные в свои коллажи.
Например, www.housingmaps.com и теперь закрытый www.chicagocrime.org
Если есть URL, который можно использовать для ссылки, это было бы идеально!
8 ответов
Продолжая исследовать эту область, я нашел потрясающий сайт, который частично делает то, что мне интересно:
Он использует HTTPReferer клиентского браузера, что интересно, но не идеально. Автор сайта также утверждает, что по-королевски пометил CL, что я понимаю. Это также дает четкий пример потребностей бизнеса, которые похожи на мои потребности, и почему я заинтересован в этой теме.
Для http://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 - это бета-сервис, который предоставляет API-интерфейс для разработчиков многих сервисов, включая Craigslist. Их команда также создала Craiggers, чтобы продемонстрировать пример использования этого API. Основатель Грег Кидд сказал мне, что 3taps собирает данные Craigslist из источников, не относящихся к Craigslist, где они уже проиндексированы и кэшированы, чтобы не создавать нагрузку на Craigslist. Другие источники данных 3taps также перечислены, но эти статистические данные неясно, поддерживаются ли они в настоящее время. Их цель - демократизация обмена данными.
80legs - это служба сканирования, которая предоставляет менее оперативный, но потенциально более комплексный вариант. Их сервис в стиле дампа данных включает в себя пакеты для сканирования сотен сайтов, включая Amazon, Facebook и Zillow (в настоящее время я не верю в Craigslist). Их новое усилие Datafiniti предоставляет поисковую систему по данным этого типа.
Проблема с любым чистящим решением craigslist заключается в том, что они автоматически блокируют любой IP-адрес, который обращается к ним "слишком много" - что обычно означает более нескольких сотен раз в день. Поэтому, как только ваш инструмент приобретет какую-либо популярность, он будет закрыт.
Вот почему единственные поисковые сайты Craigslist, которые продолжались, используют фреймы (например, searchtempest.com и crazedlist.org) или Google (например, allofcraigs.com).
Что делает 3taps, так это собирает список craigslist из сторонних источников "в дикой природе" - например, кеша Google и Bing.
Изменить: этот ответ больше не актуален. Большинство поисковых систем объявлений, которые содержат результаты из craigslist, теперь используют Google Custom Search или аналогичные решения от Yahoo или Bing. SearchTempest использует оба. Allofcraigs теперь adhuntr и использует Google. Сумасшедший закрылся.
Альтернативный вариант - использовать каналы YQL или Yahoo для сбора результатов.
Craiglook и HousingMaps используют их для сбора результатов
Я много собирал данные с таких сайтов, как eBay, Craigslist и Zillow. Каждый источник требует своего метода для агрегирования данных.
Для Craigslist я получил данные, используя RSS-каналы. Я хотел только конкретные данные в определенных категориях в определенных городах, и RSS-каналы работали хорошо для меня. Если вы пытаетесь получить все данные и злоупотребляете RSS-каналами, Craigslist, вероятно, забанит вас. Кроме того, вы не сможете получить все данные из каналов Craigslist, потому что каналы показывают большую часть данных, но не все. Если ваша надежность не должна быть на 100%, то RSS это самый простой способ сделать это.
Я угадываю соскоб экрана
я не думаю, что API Craigslist пока есть.. и я не думаю, что они выпустят один..
так что единственный способ - это очистить данные. Вы можете использовать библиотеку cURL и использовать регулярные выражения для очистки нужных данных страницы.
если вы видите ссылку.. перейдите на страницу.. очистите новую страницу, получите данные и покажите их или сохраните
и так далее..
Я только что сделал один:
http://cdn.javascriptmvc.com/videos/jobs/craigslist.js
Что производит:
http://cdn.javascriptmvc.com/videos/jobs/craigslist.html
Должен быть запущен в носороге.