IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dotnet Discussion :

Extraction de données de pages web à l'aide de HTML Agility Pack [Tutoriel]


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut Extraction de données de pages web à l'aide de HTML Agility Pack
    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

  2. #2
    Membre éprouvé

    Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2004
    Messages : 178
    Par défaut
    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 !

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Par défaut
    En php j'utilise phpQuery.
    je teste le code jQuery dans la console js et je le copie tout simplement.

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    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/

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    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...

  6. #6
    Membre actif Avatar de poincare
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2007
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 48
    Par défaut Web scraping facile avec Ada et AWS
    Le framework client Ada Web server (AWS) permet le web scraping très facilement :
    exemple http://rosettacode.org/wiki/Web_scraping#Ada

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    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.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2012
    Messages : 10
    Par défaut
    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 ?

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    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.

  10. #10
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut Installation
    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

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    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é
    Fichiers attachés Fichiers attachés

  12. #12
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Merci pour le fichier.
    Le Zip contient plusieurs répertoires. Dans quel répertoire faut-il choisr le fichier DLL sachant qu'il y en a un dans chaque répertoire ?

    Nota : je suis sous Win7 64 bits

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par noftal Voir le message
    Merci pour le fichier.
    Le Zip contient plusieurs répertoires. Dans quel répertoire faut-il choisr le fichier DLL sachant qu'il y en a un dans chaque répertoire ?

    Nota : je suis sous Win7 64 bits
    Ca dépend du type d'application. Si c'est une appli Windows Forms, WPF ou ASP.NET, choisis "Net40".

  14. #14
    Membre éclairé
    Inscrit en
    Juillet 2013
    Messages
    777
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 777
    Par défaut
    Là, dans l'immédiat c'est pour un simple code dans un module.
    Mais plus généralement, où trouve-t-on la correspondance entre l'application et le répertoire où piocher le DLL ?

Discussions similaires

  1. Extraction données javascript page web
    Par bougnbie dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 17/01/2013, 13h59
  2. Création d'une page Web à l'aide du HTML
    Par Mouhsine2009 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/01/2009, 11h48
  3. Extraction de texte de pages web?
    Par VinnieMc dans le forum Web
    Réponses: 4
    Dernier message: 01/03/2006, 19h42
  4. [VB]stocker des données de pages web dans une base
    Par tofito dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/02/2006, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo