7
votes

Quel est le moyen le plus simple d'extraire de manière programmable les données structurées à partir d'un tas de pages Web?

Quel est le moyen le plus simple d'extraire de manière programmable les données structurées à partir d'un tas de pages Web?

J'utilise actuellement un programme Adobe Air, j'ai écrit pour suivre les liens sur une page et accroître une section de données sur les pages suivantes. Cela fonctionne réellement bien et pour les programmeurs, je pense que cela (ou d'autres langues) fournit une approche raisonnable, à écrire au cas par cas. Peut-être qu'il y a une langue ou une bibliothèque spécifique qui permet à un programmeur de le faire très rapidement, et si oui, je serais intéressé à savoir ce qu'ils sont.

Il existe également des outils qui permettraient un non-programmeur, comme un représentant de support client ou une personne responsable de l'acquisition de données, d'extraire des données structurées à partir de pages Web sans qu'il soit nécessaire de faire une tasse de copie et de coller?


0 commentaires

6 Réponses :


0
votes

J'utilise une combinaison de rubis avec Hpricot et watir obtient le travail de manière très efficace


0 commentaires

2
votes

J'ai trouvé que YQL soit très puissant et utile pour ce genre de chose. Vous pouvez sélectionner n'importe quelle page Web sur Internet et le rendra valide, puis vous permettra d'utiliser des sections XPath pour interroger. Vous pouvez le produire sous forme de XML ou JSON prêt à être chargé dans un autre script / application.

J'ai écrit ma première expérience avec elle ici:

http: //www.kelvinuck. COM / 2009/02 / Data-raclage-with-yql-and-jQuery /

Depuis lors, YQL est devenu plus puissant avec l'ajout du mot clé Exécuteur qui vous permet d'écrire votre propre logique en JavaScript et de l'exécuter sur Yahoo! S Servers avant de vous renvoyer les données.

Une écriture plus détaillée de YQL est ici .

Vous pouvez créer un jeu de données pour que YQL pour obtenir aux bases des informations que vous essayez de saisir, puis que le responsable de l'acquisition de données pourrait écrire des requêtes très simples (dans une DSL qui est jolie anglais) contre cette table. Ce serait plus facile pour eux que «une programmation appropriée» au moins ...


0 commentaires

11
votes

Si vous faites une recherche sur Stackoverflow pour www :: mécaniser code > & PQUERY code> Vous verrez de nombreux exemples Utilisation de ces perl modules CPAN .

Cependant, parce que vous avez mentionné "non programmeur" puis peut-être Web :: grattoir code> le module CPAN peut-être plus approprié? C'est plus DSL comme et peut-être aussi plus facile pour "non programmeur" à ramasser. p>

Voici un exemple de la documentation pour la récupération des tweets à partir de Twitter: P>

use URI;
use Web::Scraper;

my $tweets = scraper {
    process "li.status", "tweets[]" => scraper {
        process ".entry-content",    body => 'TEXT';
        process ".entry-date",       when => 'TEXT';
        process 'a[rel="bookmark"]', link => '@href';
    };
};

my $res = $tweets->scrape( URI->new("http://twitter.com/miyagawa") );

for my $tweet (@{$res->{tweets}}) {
    print "$tweet->{body} $tweet->{when} (link: $tweet->{link})\n";
}


0 commentaires


2
votes

Il y a SPROG , qui vous permet de créer graphiquement des processus hors des pièces (Obtenir l'URL -> Process Process HTML Tableau -> Dossier d'écriture), et vous pouvez mettre un code PERL dans n'importe quelle étape du processus ou écrire vos propres pièces pour une utilisation non programmeuse. Il semble un peu abandonné, mais fonctionne toujours bien.


0 commentaires

0
votes

Les outils commerciaux sont-ils des réponses viables? Si oui, consultez http://screen-scraper.com/ Il est super facile à configurer et à utiliser pour gratter les sites Web. Ils ont une version gratuite qui est en fait assez complète. Et non, je ne suis pas affilié à la société :)


0 commentaires