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

avec Java Discussion :

Manipuler une page Web


Sujet :

avec Java

  1. #1
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut Manipuler une page Web
    Bonjour

    Ca fait plusieurs jour que je planche sur le probleme, mais sans resultat.

    Alors ce que je faire : j'ai une page web, je voudrais y prendre le controle en Java. c'est a dire : la page contient des inputs (typ : text, buton, checkbox) et ce que je voudrais c'est de pouvoir l'aide d'une application java etre capable de cliquer sur les boutons, ajouter du textbox, checker. Mais je vois pas comment faire.

    J'ai reussi a charger la page dans mon programme, mais je n'arrive pas a faire ce que j'ai decris plus haut.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  2. #2
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 562
    Points : 15 493
    Points
    15 493
    Par défaut
    Java n'est tout simplement pas adapté pour faire ce genre de chose étant doné qu'il est exécuté coté client. si tu veux faire des manipulations sur la page une fois celle ci chargée, il faut regardé du coté du javascript.

  3. #3
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Tout dépend de ce que tu veux faire ?

    1) Qui dit page web dit lecteur page web. Est-ce un programme à toi ou est-ce un client web ?
    Dans le cas du client web, comme dit uther, javascript est plus adapté.
    Si c'est un programme à toi, est-ce que tu charge justes la page web (un flux textuel) ou est-ce que tu l'affiches également dans une interface swing/swt via un composant "JBrowser" ? Dans le premier cas, il te faut parser le flux textuel html, dans le deuxième cas, tu peut peut être interagir avec la structure objet du composant "JBrowser".

    2) Qui dit page web dit page à toi ou non ?
    Est-ce une page web que tu fabriques ou que tu récupères sur un site ?

    Après, ci c'est faire un programme java qui simule les actions d'un utilisateur dans une page web (je rempli tel champ, je clique sur tel bouton, ...) as tu ragardé du côté de HTTPClient ?

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  4. #4
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Citation Envoyé par benwit Voir le message
    Après, ci c'est faire un programme java qui simule les actions d'un utilisateur dans une page web (je rempli tel champ, je clique sur tel bouton, ...) as tu regardé du côté de HTTPClient ?
    c'est exactement ce que je veux faire.

    Par exemple : je voudrais lancer la google, remplir automatiquement le champs de recherche, lancer la recherche et récupère les info d'une partie de la page, tout ceci sans l'intervention de l'utilisateur.

    Je vais regardé cet api.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  5. #5
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

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

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Je reviens vers vous pour mon probleme qui peut desormais etre vu comme celui-ci

    je voudrais lancer la google, remplir automatiquement le champs de recherche, lancer la recherche et récupère les info d'une partie de la page, tout ceci sans l'intervention de l'utilisateur.
    J'ai regarde du coté de quelques API mais je n'ai rien trouvé, alors si vous (particulierement benwit qui a compris mon probleme) avez une solution a me proposer, je suis preneur.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  6. #6
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    En effet, ce que je t'ai montré (httpclient) n'est qu'une brique. Il faut écrire du code ...

    Remarque que la plupart du temps, il n'est pas besoin de chercher à remplir un champ et à cliquez sur un bouton car les formulaires ne sont que des interfaces conviviales.
    Dès que tu sais que http, c'est des requêtes à envoyées et des réponses à traiter. Il te suffit de connaître les paramètres de la requête et de parser la réponse.

    Exemple de la puissance de HttpClient 4.0-beta2 (documentation ici) qui te retourne les 10 premiers liens français google pour "toto" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.ResponseHandler;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.BasicResponseHandler;
    import org.apache.http.impl.client.DefaultHttpClient;
     
     
    public class Test
    {
        public static void main(String[] args)
        {
            String language = "fr";
            String keywords = "toto";
            HttpClient httpclient = new DefaultHttpClient();
     
            try
            {
                HttpGet httpget = new HttpGet("http://www.google.com/search?hl="+language+"&q=" +keywords);
                System.out.println("Execute la requete " + httpget.getURI());
     
                ResponseHandler<String> responseHandler = new BasicResponseHandler();
                String responseBody = httpclient.execute(httpget, responseHandler);
     
                Pattern pattern = Pattern.compile("<a href=[^>]*class=l");
                Matcher matcher = pattern.matcher(responseBody);
     
                while(matcher.find())
                {
                    String links = matcher.group();
                    System.out.println(links.substring(16, links.length()-9)); 
                }
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            finally
            {
                httpclient.getConnectionManager().shutdown();    
            }
        }
     
    }

    Peut être existe t'il des produits "tout fait" mais je n'en connais pas ?

    Si le besoin est spécifique à Google, il y a aussi leur apis pour attaquer leur moteur mais là encore, c'est limité.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

Discussions similaires

  1. Manipuler des données d'une page web avec VB6.0
    Par achrafchi dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/09/2012, 19h12
  2. Manipuler les images d'une page web en perl
    Par trealais dans le forum Web
    Réponses: 1
    Dernier message: 11/06/2009, 08h31
  3. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  4. ouvrir une page Web en mode texte
    Par Halleck dans le forum Windows
    Réponses: 7
    Dernier message: 03/03/2004, 15h08
  5. Réponses: 3
    Dernier message: 28/10/2003, 14h26

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