29 votes

Comment les mashups de Craigslist obtiennent-ils des données ?

Je fais des recherches sur les agrégateurs de contenu et je suis curieux de savoir comment certains agrégateurs de Craigslist obtiennent des données dans leurs mashups.

Par exemple, www.housingmaps.com et le site www.chicagocrime.org, désormais fermé.

S'il existe une URL qui peut être utilisée comme référence, ce serait parfait !

15voto

cfay Points 159

Pour AdRavage.com J'utilise une combinaison de Magpie RSS (pour extraire les données renvoyées par les recherches) et d'une classe de scraping d'écran personnalisée pour alimenter correctement les informations sur les villes et les catégories utilisées lors de l'élaboration des recherches.

Par exemple, pour extraire les catégories, vous pourriez :

//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();

13voto

John Lehmann Points 1659

Une alternative au scraping (et au blocage), à l'utilisation de cadres, ou à la recherche Google est d'utiliser une courtier en données o échange de données service.

3taps est un service en version bêta qui fournit une API pour développeurs à de nombreux services, dont Craigslist. Leur équipe a également construit Craiggers pour démontrer un cas d'utilisation de cette API. Le fondateur Greg Kidd m'a expliqué que 3taps récolte les données de Craigslist à partir de sources non-Craigslist où elles sont déjà indexées et mises en cache, afin de ne pas peser sur Craigslist. D'autres sources de données 3taps sont également répertoriées, mais ces statistiques ne permettent pas de savoir s'ils sont actuellement pris en charge. Leur objectif est de Démocratiser l'échange de données .

80legs est un service d'exploration qui offre une option moins en temps réel mais potentiellement plus complète. Leur service de type "data dump" comprend paquets rampants pour des centaines de sites, dont Amazon, Facebook et Zillow (je ne crois pas qu'il s'agisse actuellement de Craigslist). Leur effort plus récent Datafiniti fournit un moteur de recherche sur ce type de données.

4voto

Nathan Stretch Points 507

Le problème avec toute solution de scraping de craigslist est qu'ils bloquent automatiquement toute adresse IP qui y accède "trop" - ce qui signifie généralement plus de quelques centaines de fois par jour. Donc, dès que votre outil aura une certaine popularité, il sera fermé.

C'est pourquoi les seuls sites de recherche craigslist qui ont perduré utilisent des cadres (comme searchtempest.com et crazedlist.org) ou google (comme allofcraigs.com).

Le rôle de 3taps est de rassembler les listes de craigslist à partir de sources tierces "dans la nature", comme les caches de Google et de Bing, par exemple.

Edit : cette réponse n'est plus d'actualité. La plupart des moteurs de recherche de petites annonces qui incluent les résultats de craigslist utilisent maintenant Google Custom Search ou des solutions similaires de Yahoo ou Bing. SearchTempest utilise les deux. Allofcraigs est maintenant adhuntr et utilise Google. Crazedlist a fermé ses portes.

4voto

Rory Points 41

L'autre option serait d'utiliser YQL ou Yahoo pipes pour rassembler les résultats.

Craiglook et HousingMaps les utilisent pour recueillir des résultats

3voto

Brandon Points 31

J'ai fait beaucoup d'agrégation de données à partir de sites comme eBay, Craigslist et Zillow. Chaque source nécessite une méthode différente pour agréger les données.

Pour Craigslist, j'ai obtenu les données en utilisant les flux RSS. Je ne voulais que des données spécifiques dans des catégories spécifiques et dans des villes spécifiques, et les flux RSS ont bien fonctionné pour moi. Si vous essayez d'obtenir toutes les données et que vous abusez des flux RSS, Craigslist vous bannira probablement. De plus, vous ne pourrez pas obtenir toutes les données à partir des flux de Craigslist, car les flux affichent la plupart des données, mais pas toutes. Si votre fiabilité ne doit pas être de 100 %, le RSS est le moyen le plus simple de le faire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X