Meilleure option pour la récupération Web (HTMLAgilityPack ou Python + beautifulsoup) pour le programmeur C #

beautifulsoup c# html-agility-pack python

Question

Je suis un programmeur .NET. J'ai besoin de travailler sur un projet de raclage Web. Je veux avoir une idée sur HTMLAgilityPack vs BeautifulSoup.

Beaucoup de gens disent que BeautifulSoup est bien meilleur que HTMLAgilityPack. Mais pour cela, je dois apprendre le python.

Ma question est la suivante: est-il raisonnable pour moi d’apprendre Python et BeautifulSoup ou de continuer avec C # et HTMLAgilityPack?

Toute autre suggestion est la bienvenue.

Réponse acceptée

Dans le monde C # .NET, je recommanderais HTMLAgilityPack car il est très flexible. Il vous permet de manipuler du HTML mal formé comme s'il s'agissait d'un XML bien formé. Vous pouvez donc utiliser XPath ou simplement itérer sur des nœuds.

BeautifulSoup est un excellent moyen de supprimer le code HTML, mais du point de vue des développeurs, il n’est pas facile de se familiariser avec une technologie totalement nouvelle. Je recommanderais donc vivement HTMLAgilityPack si vous êtes un gars de .NET.

Vous pouvez obtenir un grand succès avec la combinaison de HTML Agility Pack , d'expressions régulières et de XDocument (LINQ -> XMLy stuff)

C'est extrêmement puissant - LINQ et lambda (partie 3) - HTML Agility Pack est un post de blog de Vijay Santhanam qui m'a séduit.


Réponse populaire

CsQuery , une bibliothèque que j'ai créée, est une alternative relativement nouvelle à Html Agility Pack. Il offre les avantages suivants:

  • Prise en charge complète du sélecteur CSS3, qui est déjà bien connue et beaucoup plus simple que xpath pour la plupart des utilisateurs, et de la même manière que vous avez déjà codé pour le client.
  • L'API jQuery, pour les mêmes raisons
  • Utilise l’analyseur HTML validator.nu , un analyseur conforme à HTML5. Il s’agit du même code de base que celui utilisé par les navigateurs basés sur Gecko (Firefox), ce qui signifie qu’il devrait produire exactement le même DOM que les navigateurs Web, même pour les balises généralement mauvaises / non valides.
  • Indexe les documents en rendant les sélecteurs extrêmement rapides, même sur des documents très volumineux. HAP doit parcourir l’arborescence de documents complète pour chaque sélecteur, ce qui le ralentit considérablement pour les sélecteurs complexes et les documents volumineux.
  • Couverture étendue des tests unitaires - tous les tests de jQuery et Sizzle (le moteur de sélection jQuery CSS) ont été portés en C #.

Désavantages:

  • À l’heure actuelle, seul compile la structure complète .NET 4+, alors que HAP dispose de constructions pour la plupart des environnements .NET.

Vous pouvez l'obtenir à partir de nuget: Install-Package CsQuery .




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi