2009-10-26 2 views
0

Je dois saisir des données (contenu) Sites ces sites fournissent des listes dont j'ai besoin de saisir ceux-ci et de les filtrer en fonction du contenula meilleure façon de récupérer des données de sites Web (contenu)?

tout logiciel peut faire? script php? sinon, où puis-je commencer à programmer cette fonctionnalité?

+0

BTW, les sites cibles peuvent nécessiter somesort d'entrée de données pour afficher leur contenu comme nous choisir une ville dans un menu déroulant. –

+0

et aucune API pour récupérer ces données de sites Web –

Répondre

0

Il n'y a rien de magique. Parce que chaque contenu de page est différent.
En parlant de PHP, je vais vous donner quelques indices avec ce langage. Vous pouvez récupérer une page Web à l'aide de curl. Après avoir obtenu le contenu, vous pouvez l'analyser en utilisant regular expressions. En fonction de ce que vous voulez faire, vous devrez développer l'application par vous-même.

1

Utilisez file_get_contents() qui renvoie une chaîne entière pour le fichier entier, puis analyse la chaîne pour en extraire le contenu.

D'autres options seraient cURL ou wget qui va obtenir le fichier entier puis les traiter avec tels que sed et awk ou PERL

Cela dépend combien de fois vous avez besoin de gratter la page cible. Si occasionnellement, alors PHP, mais vous aurez besoin de le déclencher à partir d'un navigateur et remeber regexp en PHP peut prendre beaucoup de temps.

Si vous voulez graver le fichier régulièrement, un script BASH avec cURL/wget + sed et awk peut être exécuté à partir de cron sans intervention et en arrière-plan.

1

Si son php .. peut-être que cela vous aide .. http://www.thefutureoftheweb.com/blog/web-scrape-with-php-tutorial

// get the HTML 
$html = file_get_contents("http://www.thefutureoftheweb.com/blog/"); 


preg_match_all(
    '/<li>.*?<h1><a href="(.*?)">(.*?)<\/a><\/h1>.*?<span class="date">(.*?)<\/span>.*?<div class="section">(.*?)<\/div>.*?<\/li>/s', 
    $html, 
    $posts, // will contain the blog posts 
    PREG_SET_ORDER // formats data into an array of posts 
); 

foreach ($posts as $post) { 
    $link = $post[1]; 
    $title = $post[2]; 
    $date = $post[3]; 
    $content = $post[4]; 

    // do something with data 
} 

Bien sûr, vous aurez besoin de personnaliser l'expression régulière en fonction de vos besoins.

aussi des tas d'autres exemples, vous pouvez trouver .. http://www.google.com/search?source=ig&hl=en&rlz=&=&q=php+web+scraper&aq=f&oq=&aqi=

Questions connexes