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

Moteurs Web Discussion :

Comment lire les fichiers JS d'une page c?


Sujet :

Moteurs Web

  1. #21
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Le problème là, c'est que les URLs sont générées dynamiquement, donc les extraire ne te ménera à rien. Que veux-tu faire au final?

  2. #22
    Membre du Club Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Le problème là, c'est que les URLs sont générées dynamiquement, donc les extraire ne te ménera à rien. Que veux-tu faire au final?
    salut,
    merci pour la reponse ,

    j'ai fait l'extraction des fichiers js d'une page charger avec QtWebKit mais ces fichiers js peuvent contenir d'autres fichiers js (c'est a dire appel d'un fichier js dans un fichier js) par exemple :

    le fichier 0100.js appelle Fix.js :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.write ('<script language="javascript" type="text/javascript" src="http://pubmedia.tf1.fr/tf1/Fix.js"></script>');
    l'extraction des fichiers js d'une page web est faite, mais j'arrive pas à récupérer les fichiers js contenu dans d'autre js c'est pour cette raison que je veux parcourir les fichiers js ,

    merci pour tout aide,

  3. #23
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Dans le cas que tu cites (et uniquement celui-ci), tu peux te contenter d'une expression de ce type:
    Il va de soi que:
    1. ca ne fonctionne que pour script
    2. ca ne fonctionne que pour les urls non composées dynamiquement
    3. ca ne fonctionne que si l'attribut src est le dernier.

    Si tu veux quelque chose de plus robuste, il te faudra:
    1. récupérer le contenu de document.write
    2. décomposer le noeud (sa clé plus une collection d'éléments attribut=valeur
    3. récupérer l'attribut src
    En bref, vaut mieux charger ce snippet dans un lecteur XML pour récupérer la valeur de ton attribut

  4. #24
    Membre du Club Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Dans le cas que tu cites (et uniquement celui-ci), tu peux te contenter d'une expression de ce type:
    Il va de soi que:
    1. ca ne fonctionne que pour script
    2. ca ne fonctionne que pour les urls non composées dynamiquement
    3. ca ne fonctionne que si l'attribut src est le dernier.

    Si tu veux quelque chose de plus robuste, il te faudra:
    1. récupérer le contenu de document.write
    2. décomposer le noeud (sa clé plus une collection d'éléments attribut=valeur
    3. récupérer l'attribut src
    En bref, vaut mieux charger ce snippet dans un lecteur XML pour récupérer la valeur de ton attribut
    merci pour la reponse ,
    j'ai fait la recuperation de contenu de document.write puis j'ai recuperer l'attribut src de la balise <script> , mais comme j'ai plusieur fichier .js je doit les verifier tous et cette verification je l'ai fait dans le slot "slotReadyRead"
    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
    void Webkit::Charger_fichier()
    {
     
    lien_js  =dataScript->getLink();
     
    //int j;
    //for (j=0;j<lien_js.size();j++){
     
    qDebug()<< "liens js: " << lien_js[0];
    QUrl urll(lien_js[0]); 
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
                     this, SLOT(slotReadyRead(QNetworkReply*)));
    QNetworkRequest request;
    request.setUrl(urll);
    manager->get(request);
    app->processEvents();
                       //                  }
    }
    mon probleme c'est si je fixe le lien de fichier .js comme ce ci "lien_js[0];" j'aurai le resultat mais si je fait le parcoure de tout le tableau ca marche plus ? vous pouvez m'aider je voie pas le probleme ?
    voila le code de slot "slotReadyRead" dans ce slot j'ai recuperer le contenue de fichier .js dans "chaine" de type QByteArray puis je parcoure chaine si il rencontre le mot "document.write" je recupere leur contenue dans un string puis je cherche l'attribut qui contient "http://" :
    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
    void  Webkit::slotReadyRead(QNetworkReply* reply)
    { QString affichage;
     
    QByteArray chaine  =reply->readAll();
     
             for (int j = 0; j < chaine.size()-13; ++j) {  
                 if ((chaine[j]=='d')&&(chaine[j+1]=='o')&&(chaine[j+2]=='c')&&(chaine[j+3]=='u')&&
                    (chaine[j+4]=='m')&&(chaine[j+5]=='e')&&(chaine[j+6]=='n')&&(chaine[j+7]=='t')&&
                    (chaine[j+8]=='.')&&(chaine[j+9]=='w')&&(chaine[j+10]=='r')&&(chaine[j+11]=='i')&&
                    (chaine[j+12]=='t')&&(chaine[j+13]=='e'))
                      {    int k; k=j+14;
                           while (chaine[k]!='<') { k++; }
                           while (chaine[k]!='>') { docwrite.push_back(chaine[k]); k++; }
                           docwrite.push_back(chaine[k]);
                                qDebug() << "peut etre quel existe un autre fichier .js    :";
                                qDebug()<<docwrite ;
     
                                QString str =docwrite;
                                docwrite.clear ();
                                doc.setContent(str);             
            		    QDomNodeList node_liste = doc . elementsByTagName ("script");
                                QString valAttr;
                                for(int i=0;i<node_liste . length();i++)
                                        {
                                         QDomNode node = node_liste . item (i);
                                         QDomElement elt = node . toElement ();
                                         QDomAttr attr = elt . attributeNode ( "src");
                                         valAttr = attr . value ();
                                                   if (valAttr . contains("http://", Qt::CaseInsensitive)) 
                                                      {     
                                                        qDebug()<< "le nouveau scripttttttttttttttttttttttttttttttttttt: "<<attr . value(); 
                                                        affichage = affichage + " "+attr . value(); 
                                                         qDebug() << "le  fichier .js existant     :"<< affichage ;
                                                       }
     
                                        }
     
     
                      }  
     
                                                          }//fin boucle for 
     
    }
    est ce que mon idée est bonne ?,
    merci pour tout aide ,

Discussions similaires

  1. Comment lire les attributs "hide" d'une table en VBA
    Par fredlefou dans le forum Access
    Réponses: 1
    Dernier message: 28/01/2008, 01h30
  2. Lire les fichiers copiés d'une base de données
    Par zaac01 dans le forum Installation
    Réponses: 5
    Dernier message: 18/11/2007, 16h30
  3. Comment lire les fichiers dont l'extension est .tex ?
    Par condor_01 dans le forum Ubuntu
    Réponses: 3
    Dernier message: 19/10/2007, 16h24
  4. Réponses: 3
    Dernier message: 12/07/2007, 18h10
  5. Réponses: 3
    Dernier message: 19/02/2007, 23h01

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