Web scraping en C# avec HTML Agility Pack
Un tutoriel de Thomas Levesque
Le 2012-08-18 13:11:28, par tomlev, Rédacteur/Modérateur
Bonjour,
Extraction de données de pages web à l'aide de HTML Agility Pack
Lire l'article
N'hésitez pas à noter et commenter l'article dans cette discussion
Extraction de données de pages web à l'aide de HTML Agility Pack
Il est souvent utile de récupérer automatiquement des données à partir d'une page web, en analysant le code HTML de la page pour extraire les informations qui nous intéressent. Si on n'utilise pas les outils adéquats, écrire du code pour faire ce genre de chose peut vite devenir fastidieux... Ce tutoriel présente un outil très facile à utiliser pour extraire des données d'une page web : HTML Agility Pack
N'hésitez pas à noter et commenter l'article dans cette discussion
-
RewardMembre confirméSalut,
C'est excellent je ne connaissais pas du tout cette bibliothèque !
J'en comprends tout l'intérêt car pour un projet perso, j'ai été amené à faire ce genre de traitement. Et je suis tombé dans le cas numéro 1, à partir d'un webClient et de recherches fastidieuses dans le flux string Html.
C'est beaucoup plus souple de cette façon !le 22/08/2012 à 9:05 -
amezghalMembre habituéEn php j'utilise phpQuery.
je teste le code jQuery dans la console js et je le copie tout simplement.le 22/08/2012 à 16:38 -
mermichMembre expérimentéSalut,
Très bon article, mais je pense qu'il aurait été utile de mentionner fizzler qui est une surcouche de AgilityPAck et permet d'utiliser des sélecteurs css au lieu de xsl: http://code.google.com/p/fizzler/le 23/08/2012 à 10:00 -
tomlevRédacteur/ModérateurSalut,
Je ne l'ai pas mentionné tout simplement parce que je ne connaissais pas... effectivement ça a l'air sympa ! Par contre c'est encore en beta...le 23/08/2012 à 10:19 -
poincareMembre régulierLe framework client Ada Web server (AWS) permet le web scraping très facilement :
exemple http://rosettacode.org/wiki/Web_scraping#Adale 07/09/2012 à 14:57 -
tomlevRédacteur/ModérateurJe n'ai pas l'impression que ça ait grand chose à voir... dans le code que tu indiques, AWS sert juste à récupérer le contenu de la page, pas à analyser le contenu. La lecture du HTML se fait ligne par ligne, sans tenir compte de la structure du DOM.le 07/09/2012 à 16:09
-
umiakFutur Membre du ClubBonjour,
Merci pour ce tutoriel, sympas et efficace. L'article stipule à la fin qu'il est possible de modifier des pages html, a tout hasard serait-il également possible de ce s'identifier sur un site web via cette librairie ?le 28/11/2012 à 23:13 -
tomlevRédacteur/ModérateurOui c'est possible, mais ça dépend du type d'authentification utilisé sur le site. Si c'est de l'authentification "Basic", il y a une surcharge de la méthode HtmlWeb.Load qui permet d'indiquer le user/password.
Si c'est basé sur un formulaire et des cookies, ce sera peut-être un peu plus complexe. Il faudra d'abord poster le user/password pour s'identifier avec HttpWebRequest et récupérer les cookies, puis renvoyer les cookies à chaque requête. A priori ce n'est pas faisable directement avec la classe HtmlWeb, mais rien n'empêche de faire les requêtes avec HttpWebRequest et de parser le résultat avec Html Agility Pack. Il suffit d'utiliser la méthode Load qui prend un Stream en paramètre dans la classe HtmlDocument.le 29/11/2012 à 0:34 -
noftalMembre actifBonjour,
Je suis débutant sur Visual Studio 2010 Express.
Au 1.2 vous écrivez : "Dans l'explorateur de solution faites un clic droit sur le nœud Références de votre projet, et choisissez Ajouter une référence"
Comment fait-on pour faire apparaître le noeud Référence sur un projet dans l'explorateur de solutions ?
Le lien download de HAP du site http://htmlagilitypack.codeplex.com/ ne fonctionne pas chez moi.
Peut-on installer HAP sans Nuget dans la mesure où Nuget n'est pas disponible pour la version Express de Visual Studio :
http://www.developpez.net/forums/d11...t/#post7431310le 08/08/2013 à 22:03 -
tomlevRédacteur/ModérateurNormalement il est toujours là... Sinon, clic droit sur le projet lui-même, "Ajouter une référence"
Bizarre, je viens de tester et ça fonctionne bien pour moi.
Je te le mets en PJ du message au cas où tu n'arrives pas à le télécharger
Oui, en l'installant manuellement comme j'ai expliquéle 09/08/2013 à 0:48