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 :

Récupérer une page et exécuter le javascript


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Par défaut Récupérer une page et exécuter le javascript
    Salut ,
    je veut récupérer une page web exécuter son javascript et la parser .
    Je ne sais pas comment exécuter le javascript mais apparemment il y a un problème .Qaund je récupère la page , je l'enregistre page.html et je l'ouvre avec firefox le javascript ne marche pas il y a un problème de commentaire .Donc je pense que avec java j'aurais le même problème .

    Je sais pas si c'est claire , je pense pas hhh bref je vous montre le code :
    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
    45
    46
    47
    import java.io.*;
    import java.net.*;
     
    public class MyProg {
    	public static String post(String adresse, String donnees){
            String a="";
            int idex=0;
             OutputStreamWriter writer = null;
             BufferedReader reader = null;
               try {
                   a = "";
                  //création de la connection
                  URL url = new URL(adresse);
                  URLConnection conn = url.openConnection();
                  conn.setDoOutput(true);
                 // System.out.println(conn.getURL());
                  //envoi de la requête
                  writer = new OutputStreamWriter(conn.getOutputStream());
                  writer.write(donnees);
                  writer.flush();
                  //lecture de la réponse
                  reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                  String ligne;
                  while ((ligne = reader.readLine()) != null) {
                      a += ligne;
                  }
     
               }catch (Exception e) {
                  e.printStackTrace();
               }finally{
                  try{writer.close();}catch(Exception e){}
                  try{reader.close();}catch(Exception e){}
               }
               return a;
        }
     
    	public static void main(String args[])
    	{
     
    		String adr="http://wftc2.e-travel.com/plnext/tunisair/Override.action";
            String don="&B_LOCATION_1=TUN&E_LOCATION_1=ALG&TRIP_TYPE=R&B_Day=08&B_Month=04&B_YEAR=2011&B_TIME=24&dcd1=9-12-2002&E_DAY=17&E_MONTH=04&E_YEAR=2011&E_TIME=24&dcd2=9-12-2002&EMBEDDED_TRANSACTION=FlexPricerAvailability&LANGUAGE=FR&SITE=BASXBASX&TRIP_FLOW=&B_ANY_TIME_1=TRUE&B_DATE_1=201104080000&B_DATE_2=201104170000&B_ANY_TIME_2=TRUE&CORPORATE_CODE=&CORPORATE_TYPE=&AIRLINE_1_1=&AIRLINE_2_1=&EXTERNAL_ID=FLEX-IBE&SESSION_ID=&SO_GL=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22iso-8859-1%22%3F%3E%3CSO_GL%3E%3CGLOBAL_LIST+mode%3D%22complete%22%3E%3CNAME%3ESO_SINGLE_MULTIPLE_COMMAND_BUILDER%3C%2FNAME%3E%3CLIST_ELEMENT%3E%3CCODE%3E1%3C%2FCODE%3E%3CLIST_VALUE%3E%3C![CDATA[FT+*CC000129]]%3E%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3ES%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%3CLIST_ELEMENT%3E%3CCODE%3E1%3C%2FCODE%3E%3CLIST_VALUE%3E%3C![CDATA[RM+MAIL+ES+%3CUSERMAIL_COMPLETE%3E]]%3E%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3ES%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SEARCH_BY=&DESTINATION_PAGE=http%3A%2F%2Fwftc2.e-travel.com%2Fplnext%2Ftunisair%2FOverride.action&ADTPAX=1&YTHPAX=0&CHDPAX=0&InfantPAX=0&PRICING_TYPE=O&DISPLAY_TYPE=1&DATE_RANGE_VALUE_1=4&DATE_RANGE_VALUE_2=4&COMMERCIAL_FARE_FAMILY_1=WWCFF&DATE_RANGE_QUALIFIER_1=C&DATE_RANGE_QUALIFIER_2=C&SO_SITE_FD_DISPLAY_MODE=0&SO_SITE_ALLOW_SPECIAL_MEAL=FALSE&SO_SITE_AVAIL_SERVICE_FEE=TRUE&SO_SITE_CURRENCY_FORMAT_JAVA=0.00&DIRECT_NON_STOP=TRUE&SO_SITE_TRANSFER_LINK=http%3A%2F%2Fwww.tunisair.com%2Fsite%2Fpublish%2Fmodule%2Fframe_PaySpsPoste.asp&SO_SITE_OFFICE_ID=TUNTU08BB&SO_SITE_MOP_EXT=FALSE&SO_SITE_MOP_CALL_ME=TRUE&SO_SITE_DATA_TRANSFER=TRUE&SO_SITE_BOOL_ISSUE_ETKT=FALSE&SO_SITE_USER_CURRENCY_CODE=TND&TRAVELLER_TYPE_1=ADT&kjh=Envoyer";
    		String result=post(adr,don);
            System.out.println(result);
     
     
    	}
    }
    vous pouvez utiliser le lien pour voir la page , elle marche en GET et en POST :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://wftc2.e-travel.com/plnext/tunisair/Override.action?B_LOCATION_1=TUN&E_LOCATION_1=ALG&TRIP_TYPE=R&B_Day=08&B_Month=04&B_YEAR=2011&B_TIME=24&dcd1=9-12-2002&E_DAY=17&E_MONTH=04&E_YEAR=2011&E_TIME=24&dcd2=9-12-2002&EMBEDDED_TRANSACTION=FlexPricerAvailability&LANGUAGE=FR&SITE=BASXBASX&TRIP_FLOW=&B_ANY_TIME_1=TRUE&B_DATE_1=201104080000&B_DATE_2=201104170000&B_ANY_TIME_2=TRUE&CORPORATE_CODE=&CORPORATE_TYPE=&AIRLINE_1_1=&AIRLINE_2_1=&EXTERNAL_ID=FLEX-IBE&SESSION_ID=&SO_GL=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22iso-8859-1%22%3F%3E%3CSO_GL%3E%3CGLOBAL_LIST+mode%3D%22complete%22%3E%3CNAME%3ESO_SINGLE_MULTIPLE_COMMAND_BUILDER%3C%2FNAME%3E%3CLIST_ELEMENT%3E%3CCODE%3E1%3C%2FCODE%3E%3CLIST_VALUE%3E%3C![CDATA[FT+*CC000129]]%3E%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3ES%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%3CLIST_ELEMENT%3E%3CCODE%3E1%3C%2FCODE%3E%3CLIST_VALUE%3E%3C![CDATA[RM+MAIL+ES+%3CUSERMAIL_COMPLETE%3E]]%3E%3C%2FLIST_VALUE%3E%3CLIST_VALUE%3ES%3C%2FLIST_VALUE%3E%3C%2FLIST_ELEMENT%3E%3C%2FGLOBAL_LIST%3E%3C%2FSO_GL%3E&SEARCH_BY=&DESTINATION_PAGE=http%3A%2F%2Fwftc2.e-travel.com%2Fplnext%2Ftunisair%2FOverride.action&ADTPAX=1&YTHPAX=0&CHDPAX=0&InfantPAX=0&PRICING_TYPE=O&DISPLAY_TYPE=1&DATE_RANGE_VALUE_1=4&DATE_RANGE_VALUE_2=4&COMMERCIAL_FARE_FAMILY_1=WWCFF&DATE_RANGE_QUALIFIER_1=C&DATE_RANGE_QUALIFIER_2=C&SO_SITE_FD_DISPLAY_MODE=0&SO_SITE_ALLOW_SPECIAL_MEAL=FALSE&SO_SITE_AVAIL_SERVICE_FEE=TRUE&SO_SITE_CURRENCY_FORMAT_JAVA=0.00&DIRECT_NON_STOP=TRUE&SO_SITE_TRANSFER_LINK=http%3A%2F%2Fwww.tunisair.com%2Fsite%2Fpublish%2Fmodule%2Fframe_PaySpsPoste.asp&SO_SITE_OFFICE_ID=TUNTU08BB&SO_SITE_MOP_EXT=FALSE&SO_SITE_MOP_CALL_ME=TRUE&SO_SITE_DATA_TRANSFER=TRUE&SO_SITE_BOOL_ISSUE_ETKT=FALSE&SO_SITE_USER_CURRENCY_CODE=TND&TRAVELLER_TYPE_1=ADT&kjh=Envoyer
    moi mon objectif c'est récupérer les dates et les prix , mais il sont dans une variable javascript générer par JSON , donc je doit exécuter le javascript puis parser la page .

    Merci beaucoup d'avance

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ou betement regarder ou le javascript va chercher ses données et aller les chercher au meme endroit.

    PS: interroge toi sur la légalité de l'opération si le site en question ne t'appartiens pas...

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 37
    Par défaut
    Pas de problème au niveau de la légalité , je suis stagiaire dans cette société et il me demande de faire ça ...

    si non je pense que c'est ça la source non ? je pense que le javascript calcule les prix et tout dans la page non ?

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est à voir suivant la conception de la page Aller chercher des données dans une page html c'est jamais très propre. Elles doivent bien etre disponibles quelque part en amont, sur un serveur ou autre de la société, dans une format beaucoup plus cohérent qu'une page de présentation.
    En essayant d'attaquer la page directement, tu risque surtout d'avoir une application qui t'explose à la figure dès qu'on fera la moindre changemen sur le sie web.

Discussions similaires

  1. [PHP-JS] Calculs dans une page php à l'aide javascript
    Par GClavet dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 31/10/2006, 09h10
  2. Comment recuperer le code source d une page HTML distante en javascript
    Par herbert dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 26/07/2006, 22h26
  3. Transmettre à une page des variables en javascript?
    Par kenny49 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2006, 14h33
  4. [XML] Récupérer une page xml
    Par Dargos dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/06/2006, 17h31
  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