409 votes

Options pour le code HTML de grattage?

Je pense que je vais essayer Belle Soupe, un paquet Python pour le code HTML de grattage. Existe-il d'autres HTML grattant les paquets que je devrais regarder? Python n'est pas une exigence, je suis réellement intéressé à entendre parler d'autres langues.

L'histoire jusqu'ici:

65voto

Joey deVilla Points 4487

Le Rubis du monde équivalent à Belle Soupe est why_the_lucky_stiff de Hpricot.

45voto

Jon Galloway Points 28243

Dans l' .Monde NET, je vous recommande le code HTML Agility Pack. Pas près aussi simple que certaines des options ci-dessus (comme HTMLSQL), mais il est très flexible. Il vous permet de maniuplate mal formé HTML comme si elle était bien formée XML, de sorte que vous pouvez utiliser XPATH ou tout simplement itereate sur les nœuds.

http://www.codeplex.com/htmlagilitypack

38voto

Cristian Points 10133

BeautifulSoup est un excellent moyen d'aller pour le code HTML de grattage. Mon emploi précédent m'avait fait beaucoup de raclage et je souhaite que je savais à propos de BeautifulSoup quand j'ai commencé. C'est comme le DOM avec beaucoup plus d'options utiles et c'est beaucoup plus pythonic. Si vous voulez essayer Ruby ils ont porté BeautifulSoup l'appelant RubyfulSoup mais il n'a pas été mis à jour en temps.

D'autres outils utiles sont HTMLParser ou sgmllib.SGMLParser qui font partie de la bibliothèque standard de Python. Ces travaux par appel de méthodes à chaque fois que vous entrer/sortir d'une balise et la rencontre de texte html. Ils sont comme des Expatriés si vous êtes au courant. Ces bibliothèques sont particulièrement utiles si vous allez à analyser de très gros fichiers et la création d'une arborescence DOM serait long et coûteux.

Les expressions régulières ne sont pas très nécessaire. BeautifulSoup gère les expressions régulières donc, si vous avez besoin de leur puissance, vous pouvez utiliser celui-là. Je dis aller avec BeautifulSoup, sauf si vous avez besoin de vitesse et une plus petite empreinte mémoire. Si vous trouvez un meilleur analyseur HTML sur Python, laissez-moi savoir.

21voto

deadprogrammer Points 4521

J'ai trouvé HTMLSQL d'être ridiculement simple moyen de screenscrape. Il suffit de quelques minutes pour obtenir des résultats avec elle.

Les requêtes sont super-intuitive, comme:

SELECT title from img WHERE $class == 'userpic'

Il y a maintenant quelques autres alternatives que de prendre la même approche.

19voto

akaihola Points 10007

Le Python lxml bibliothèque sert de Pythonic de liaison pour la libxml2 et libxslt bibliothèques. J'aime particulièrement sa charge de XPath et d'impression de la mémoire de la structure XML. Il prend également en charge l'analyse rompu HTML. Et je ne pense pas que vous pouvez trouver d'autres bibliothèques Python/les liaisons qui parse XML plus vite que lxml.

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