Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Web scraping en C# avec HTML Agility Pack
Un tutoriel de Thomas Levesque

Le , par tomlev

7PARTAGES

3  0 
Bonjour,

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
Lire l'article

N'hésitez pas à noter et commenter l'article dans cette discussion

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Reward
Membre confirmé https://www.developpez.com
Le 22/08/2012 à 9:05
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 !
0  0 
Avatar de amezghal
Membre habitué https://www.developpez.com
Le 22/08/2012 à 16:38
En php j'utilise phpQuery.
je teste le code jQuery dans la console js et je le copie tout simplement.
0  0 
Avatar de mermich
Membre expérimenté https://www.developpez.com
Le 23/08/2012 à 10:00
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/
0  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 23/08/2012 à 10:19
Citation Envoyé par mermich Voir le message
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/
Salut,

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...
0  0 
Avatar de poincare
Membre régulier https://www.developpez.com
Le 07/09/2012 à 14:57
Le framework client Ada Web server (AWS) permet le web scraping très facilement :
exemple http://rosettacode.org/wiki/Web_scraping#Ada
0  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 07/09/2012 à 16:09
Citation Envoyé par poincare Voir le message
Le framework client Ada Web server (AWS) permet le web scraping très facilement :
exemple http://rosettacode.org/wiki/Web_scraping#Ada
Je 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.
0  0 
Avatar de umiak
Futur Membre du Club https://www.developpez.com
Le 28/11/2012 à 23:13
Bonjour,

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 ?
0  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 29/11/2012 à 0:34
Citation Envoyé par umiak Voir le message
a tout hasard serait-il également possible de ce s'identifier sur un site web via cette librairie ?
Oui 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.
0  0 
Avatar de noftal
Membre actif https://www.developpez.com
Le 08/08/2013 à 22:03
Bonjour,

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/#post7431310
0  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 09/08/2013 à 0:48
Citation Envoyé par noftal Voir le message
Comment fait-on pour faire apparaître le noeud Référence sur un projet dans l'explorateur de solutions ?
Normalement il est toujours là... Sinon, clic droit sur le projet lui-même, "Ajouter une référence"

Citation Envoyé par noftal Voir le message
Le lien download de HAP du site http://htmlagilitypack.codeplex.com/ ne fonctionne pas chez moi.
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

Citation Envoyé par noftal Voir le message
Peut-on installer HAP sans Nuget dans la mesure où Nuget n'est pas disponible pour la version Express de Visual Studio
Oui, en l'installant manuellement comme j'ai expliqué
0  0