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

Java Discussion :

projet scanner html


Sujet :

Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 15
    Points
    15
    Par défaut projet scanner html
    Bonjour,

    Récemment j'ai eu à sortir des informations d'un site web (entre autres simuler un login et récupérer des informations depuis la zone membre).
    J'ai utiliser HtmlUnit et du XPath.
    Toutefois j'ai eu à recopier plusieurs fois un code similaire et certaines informations n'étaient pas récolter car le site changeait certains nom de class (HTML) lors de la navigation.

    J'ai écrit une petite bibliothèque java pour pouvoir récupérer de manière générique des informations depuis une page web.
    Il suffit juste de décrire le XPath des informations à récolter dans un fichier XML et d'appeler 3 fonctions.
    Il est bien sur possible de décrire plusieurs pages dans un document XML.
    Pour éviter de recopier plusieurs fois un XPath similaire (pas ex : dans le cas des noms de class changeant) il est possible de passer des arguments aux XPath.

    Je poste ici pour avoir vos avis et vos remarques sur le projet.
    Je pense ajouter de quoi auto-remplir et envoyer les formulaires dans une prochaine version.

    Pour tester la bibliothèque j'ai placer un main dans Scheme.java montrant l'utilisation du XML et une utilisation concrète dans Harvester.java

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je n'ai pas regardé ton projet. C'était juste pour dire que Selenium fait ça aussi, avec du xpath, entre autres, et pour différents types de navigateur, y compris htmlunit.

    Pour les pages non dynamiques on peut utiliser aussi JSoup, qui fait ça aussi, sauf qu'à la place de xpath, on a une syntaxe "à la JQuery".

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Document doc = Jsoup.connect("http://example.com/").get();
    Elements links = doc.select("a[href]"); 
    Elements pngs = doc.select("img[src$=.png]");
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    j'avais déja regarder selenium, jsoup et htmlcleaner avant de me fixer sur htmlunit.
    Si je ne me trompe selenium est juste un pilote se branchant sur un navigateur tournant sur le client. Posant de fait des problèmes de portabilité (obligation d'avoir un plugin firefox, installation de chrome, ...).

    Jsoup et htmlcleaner supportent bien le xpath et récupère une page depuis le web (même en https) mais n'ont aucune gestion des cookies rendant impossible de se connecter à un service.

    HtmlUnit offre un vrai navigateur standalone avec exécution de js, cookies et une interface simple d'utilisation.

    Le type d’éléments que j'ai eu à récupérer avaient la forme suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div class='a'>...</div>
    <div class='a b'>...</div>
    <div class='c ...'>...</div>
    Même avec Jsoup j'aurais du écrire 2 requêtes, ce à adapter pour toutes mes pages.

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Selenium fonctionne très bien avec htmlunit (org.openqa.selenium.htmlunit.HtmlUnitDriver). Je ne vois pas trop l'intérêt pour les WebServices. Je ne suis pas spécialiste du domaine, mais des Web Services qui servent du HTML, ça existe ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Il y a plein de webservices avec du html : ceux qui ne fournissent rien pour les devs et seulement une page web à l'utilisateur^^.
    Sinon la plupart fournissent du json ou du XML.
    Je ne voit pas trop l’utilité d'utiliser selenium, qui au final va juste sur-couché htmlunit sans vraiment m'apporter un plus intéressant.

    Le but est juste de simplifier la sortie d'infos d'un site lambda sans rien avoir à écrire de spécifique pour le site (à part le XML).
    J’essaye juste de planquer au max le "comment" les données ont été récupérer et les aléas du site.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si c'est juste pour récupérer des données du site, effectivement, Selenium est un peu surdimensionné.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'ai regardé ton code et je ne vois rien de particulier à dire, si ce n'est que j'aurais utilisé StAX plutôt que DOM pour charger le "Scheme", et que j'aurais probablement mis un mode "direct" (pour extraire sans être obligé de faire un XML).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Pour le parsing xml : normalement les fichiers xml ne sont pas très gros. Je changerais peut être plus tard.
    Un mode "direct" peut effectivement être intéressant.

    Pour l'instant je vais implémenter de quoi remplir et soumettre des form ainsi que de faire une doc utlisateur

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Autre suggestion : publier ton API comme ressource Developpez.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Pourquoi pas toutefois dans quelle catégorie la ranger : XML ou net & réseaux?

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bonne question
    Peut-être dans les deux et peut-être aussi dans divers.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Projet Etudiante HTML
    Par OoPan dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 19/04/2016, 10h42
  2. Projet javascript/html ISN
    Par Feist dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 19/05/2015, 14h18
  3. Projet Collaboratif HTML Application
    Par maxim_um dans le forum VBScript
    Réponses: 1
    Dernier message: 04/07/2008, 22h28
  4. Integrer un fichier HTML a mon projet compilé
    Par M E H D I dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/04/2008, 23h46
  5. Réponses: 2
    Dernier message: 30/01/2006, 13h20

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