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 :

Récupérer une page web complète (code+images+..)


Sujet :

Java

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Récupérer une page web complète (code+images+..)
    Salut tout le monde,je voudrai savoir s'il y aurait un moyen de récupérer un page web complète ,
    j'ai déjà crée un fonction qui me retourne le code de la page
    cette fonction se base sur la connexion sur le port 80 avec une socket et en faisant un "GET" qui retourne le code,ou encore la méthode avec Urlconction plus propre
    mais jusque a maintenant je n'ai pas trouver comment récupérer toute la page,d'après mes recherche il faudrait parcourir tout les liens du code , mais c'est laborieux et surtout compliqué pour moi simple débutant en java.....

    je voudrait preciser qu'il y a une classe appelé jdbEditorPane qui permet d'afficher un document HTML elle possede une methode "setPageURL(String UrlString)" qui permet de recuperer la page et de l'afficher ,puisque j'utilise cette classe dans mon projet,je crois que je pourrait l'utiliser pour regler mon problème...
    mais j'ai essayé et rien aucun resultat .. la page distante s'affiche mais aucun moyen de la recuperer ,alors s'il y aurait un moyen de le faire .....

    merci d'avoir lue et excuser moi si je me suis tromper de section pour se poste car c ma première fois ,a+

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Je ne sais pas s'il existe une solution tout prête. Si ce n'est pas le cas, tu peux essayer de parser ton document et de télécharger les url des images contenues dans les balises <img />.

    Ça ne me semble pas extrêmement compliqué à faire, et ça t'évitera d'utiliser un canon pour tuer une mouche
    « Se demander si un ordinateur peut penser est aussi intéressant que de se demander si un sous-marin peut nager. »
    -- Edsger Dijkstra

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    tu m'excusera mais je viens tout juste de débuter en java et le parse je ne sait pas ce que c'est ,si tu pouvais être plus précis avec un petit exemple,je t'en serait très reconnaissant ,j'ai compris l'idée principale qui est le parcours des balises
    moi j'ai utilisé un simple indexof (très laborieuse "prog spaguetti" ) pour récupérer le lien mais j'aimerais bien voir la tienne , tu vas rigoler mais je ne sais pas comment récupérer les images grâce au lien ,si tu pouvais m'aider ........

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si t'as une url de base http://server/machin/index.html et là dedans t'as une url "/images/logo.gif", pour télécharger l'image, tu fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    URL base = new URL("http://server/machin/index.html");
    URL image = new URL(base,"/images/logo.gif");
    image.openConnection(); /....
    Maintenant, pour extraire tous les liens, faut y aller toi même et scanner toi meme le document html. (jette un oeil dans la class Pattern, qui implémente les regexp)

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    merci bien je vais l'essayer ..

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Je propose une idee toute bete : Le XML a ete cree a partir du HTML (sans rentrer dans le detail).
    Il se pourait que l'on puisse parser automatiquement un fichie HTML a l'aide des parser XML (cf JDom) vu que leurs structure est tres tres proche !!
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  7. #7
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    il existe également des composant tout prêt comme HtmlParser qui fournit des librairies bien foutu pour parser du html.

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Clorish Voir le message
    Je propose une idee toute bete : Le XML a ete cree a partir du HTML (sans rentrer dans le detail).
    Il se pourait que l'on puisse parser automatiquement un fichie HTML a l'aide des parser XML (cf JDom) vu que leurs structure est tres tres proche !!
    Ca sous entends un document xhtml bien formé, c'est très rarement le cas. Si tu veux jouer avec l'api dom (et éventuellement les xpaths pour scanner) faut passer par nekohtml, qui crée un document xml DOM à partir de html.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 158
    Points : 80
    Points
    80
    Par défaut
    Bonjour tchize_,

    En fait, je suis en train de chercher quelques exemples d'utilisation de NekoHTML. Mais, j'ai pas trouvé un code compréhensible. Même la documentation du site de NekoHTML ne contient pas une grande chose.
    STP, peux tu me fournir un exemple simple ou un lien qui traite ce ci.

    Merci d'avance.

    Si tu veux jouer avec l'api dom (et éventuellement les xpaths pour scanner) faut passer par nekohtml, qui crée un document xml DOM à partir de html.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Etonnant, il y a pourtant tout ce qu'il faut dans la doc de nekohtml, en tout cas pour une utilisation basique. Exemple tiré du site en question, pour parser un document en arbre DOM:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import org.cyberneko.html.parsers.DOMParser;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
     
    public class TestHTMLDOM {
        public static void main(String[] argv) throws Exception {
            DOMParser parser = new DOMParser();
            for (int i = 0; i < argv.length; i++) {
                parser.parse(argv[i]);
                print(parser.getDocument(), "");
            }
        }
    avec ca tu sais déjà comment parser un document et obtenir le org.w3c.dom.Document sur lequel tu va travailler.

Discussions similaires

  1. Récupérer une page web en vb.net
    Par xantra dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/07/2009, 00h03
  2. Réponses: 3
    Dernier message: 10/03/2009, 13h09
  3. Récupérer une page Web distante via Post
    Par Mike Reason dans le forum Langage
    Réponses: 1
    Dernier message: 06/06/2008, 09h22
  4. Réponses: 5
    Dernier message: 20/08/2006, 12h32
  5. [C++][Linux & Windows] Récupérer une page web
    Par Invité4 dans le forum C++
    Réponses: 4
    Dernier message: 06/04/2006, 19h21

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