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

JavaScript Discussion :

Récupérer données code source


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Récupérer données code source
    Bonjour à tous,
    je travail actuellement sur des bilans d'entreprises du site bilansgratuits.com, et j'aimerais pouvoir récupérer les données du bilan et du compte de résultat dans une base de données access. J'ai récupérer un code d'un ami qui me permet de récupérer certaines données, (nom de l'entreprise, adresse…) mais j'ai un problème quand je veux récupérer les données du tableau à savoir les informations vraiment utiles a l'analyse financière. En effet, je n'arrive pas à me repérer avec les balises <TD>.
    En gros j'ai une fonction StrGetbal qui retourne la chaine de caractère comprise entre deux balises.
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    function  strGetBal (Chaine, balDeb, balFin, Cond,debug,balDebPar,balFinPar)
    {
        var i,P,PP,LgF,lgD,j,VP;
        var Resu=new Array(),strRes;
    	if (!Chaine) return "";
     
    	if (debug && Cond=="!!") Cond=null;
        P=0;
        strRes='';
        LgF=balFin.length;
        LgD=balDeb.length;
        if(!balDebPar) switch(balDeb.substring(0,1)) {
    	    case '(' :
    		    balDebPar='(';
    		    balFinPar=')';
    		    break;
    	    case '{':
    		    balDebPar='{';
    		    balFinPar='}';
    		    break;
    		case '<':
    			if (balDeb.length>1) {
    				balDebPar=balDeb.split(" ")[0]; //if(balDeb.substring(balDeb.length-1,balDeb.length)!='>') 
    				//else balDebPar=balDeb;
    				balFinPar=balFin;
    			} else {
    				balDebPar='<';
    				balFinPar='>';
    			}
    		    break;
    	    default :
    	        balDebPar=balDeb;
    	        balFinPar=balFin;
    	    break;
        }
        // les chaines ont toujours une egalite en HTML
        //Chaine=Balise
        i=0;
        if (debug) stderr.WriteLine("GetBal "+balDeb+" "+balFin+" :"+balDebPar+balFinPar);
     
        while(P>=0) {
    	    P=Chaine.indexOf(balDeb,P);
    	    PP=Chaine.indexOf(balFin,P+LgD);
    	    if (debug) stderr.WriteLine('P='+P+' PP='+PP+' LgD='+LgD);
    	    if(PP>=0 && P>=0) { 
    	        //if(LgD>1 && balFinPar!=balDeb.substring(balDeb.length,1)) ;
    		    if (PP - P - LgD >= 0) {
    			    VP=Chaine.indexOf(balDebPar,P+LgD);
    			    if (debug) stderr.WriteLine('VP='+VP+'|'+balDebPar+'|'+' PP='+PP);
    			    while (VP >=0 && VP<PP) {
    			        if (debug) stderr.WriteLine('VP='+VP+' PP='+PP);
    				    PP=Chaine.indexOf(balFinPar,PP+LgF);	
    				    VP=Chaine.indexOf(balDebPar,VP+LgD);
    			    }
    			    if (PP - P - LgD >= 0){
    					var bal=Chaine.substring(P+LgD,PP+1)
     
    					if (!Cond || (Cond.substring(0,1)!='!' && bal.indexOf(Cond)>=0) || (Cond.substring(0,1)=='!' && bal.indexOf(Cond.substring(1))<0)) {		
    						Resu[i]=Chaine.substring(P+LgD,PP);
    						if (debug) stderr.WriteLine('Bal ='+Resu[i]+'...');
    						i++;
    					} else if (debug) stderr.WriteLine("Bal trouve mais non retenu sur critere "+Cond);
    			    }
    		    }
    	   	    P+=(PP - P);
    	    } else {
    		    P=-1 ;
    	    }	
        }
     
        Chaine=""
     
    	strRes=Resu.join('{s}');
        // for(j=0;j<i;j++) {
    	    // strRes+=Resu[j];
    	    // if (j!=i-1)  strRes+="{s}";//+String.fromCharCode(13)+String.fromCharCode(10)+String.fromCharCode(13)+String.fromCharCode(10);
        // }
    	if (debug) stderr.WriteLine(strRes+ " "+Resu.length);
        return strRes;	
    }
    cette fonction me récupère bien les données comprises entre des balises. Je peux imbriquer la fonction quand il ya des balises similaires.
    Par contre c'est pour récupérer les données d'un tableau que je ne sais pas comment l'utiliser.

    Par exemple le bilan de cette entreprise:
    http://www.bilansgratuits.fr/entrepr...0939800019.htm

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="container_bilans">
    <div>
    		<h2 class="titleBI accroche">Bilan Actif</h2>
    		<table cellspacing="0" class="container_tableIF sautdepage">
    			<thead>
    				<tr><th class='tableTd13'></th><th>2012<br/>(en Euros)</th><th>2011<br/>(en Euros)</th><th>2010<br/>(en Euros)</th><th>Variation<br/>2012/2011<br/>(en %)</th><th class=''>Variation<br/>2012/2010<br/>(en %)</th></tr></thead>
    			<tbody class="rightElement">
    				<tr class='titreIF '><td class="leftElement">Actif immobilisé net</td><td>663</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr><td class="leftElement">Immos incorporelles</td><td>0</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr class=''><td class="leftElement">Immos corporelles</td><td>663</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr><td class="leftElement">Immos financières</td><td>0</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr class='titreIF '><td class="leftElement">Actif circulant net</td><td>15 277</td><td>12 319</td><td>16 760</td><td class='colorGreen'>24,01</td><td class='colorRed'>-8,85</td></tr><tr><td class="leftElement">Stocks et en-cours nets</td><td>0</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr class=''><td class="leftElement">Avances et acomptes nets</td><td>0</td><td>0</td><td>0</td><td class='colorGreen'>NS</td><td class='colorGreen'>NS</td></tr><tr><td class="leftElement">Créances nettes</td><td>3 898</td><td>3 394</td><td>3 130</td><td class='colorGreen'>14,85</td><td class='colorGreen'>24,54</td></tr><tr class=''><td class="leftElement">Placement et disponibilités</td><td>11 379</td><td>8 925</td><td>13 630</td><td class='colorGreen'>27,50</td><td class='colorRed'>-16,52</td></tr><tr class='titreIF '><td class="leftElement">TOTAL ACTIF</td><td>15 939</td><td>12 319</td><td>16 760</td><td class='colorGreen'>29,39</td><td class='colorRed'>-4,90</td></tr></tbody>
    		</table>
    	</div>

    Par exemple, si je veux récupérer la valeur 663 dans une variable, je ne vois pas comment faire car il y a pleins de balises <td></td>.

    SI vous avez une idée ou une méthode pour résoudre mon problème je suis preneur.

    Cdlt

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Bon, si le document n'est pas prévu pour laisser des traces afin qu'on puisse identifier les données en JavaScript, il faut ruser un peu. Là, ce qui me vient comme idée, ce serait de se baser sur le texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [].filter.call(document.getElementsByTagName("td"), function(td){
    return td.textContent == "Actif immobilisé net";
    })[0].nextSibling.textContent;
    Mais bon, j'ai conscience que ce n'est pas l'idéal. Ils ne fourniraient pas une belle API JSON ces messieurs de bilansgratuits.com par hasard ?

  3. #3
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 079
    Points : 44 660
    Points
    44 660

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonsoir, merci à vous pour vos réponses.
    Alors je précise que je souhaite pouvoir récupérer le bilan de plusieurs entreprises, celle que j'ai donnée c'est juste un exemple.
    Dans mon cas je ne veux pas récupérer du texte mais uniquement les valeurs du tableau dans des variables. Et vu que je ne sais pas trop comment fonctionne le principe des balises <td> je suis un peu paumé...

  5. #5
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    le contenu est
    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
    <thead>
    <tr>
    <th class="tableTd13"></th>
    <th>2012<br>(en Euros)</th>
    <th>2011<br>(en Euros)</th>
    <th>2010<br>(en Euros)</th>
    <th>Variation<br>2012/2011<br>(en %)</th>
    <th class="">Variation<br>2012/2010<br>(en %)</th>
    </tr>
    </thead>
     
    <tbody class="rightElement">
    <tr class="titreIF ">
    <td class="leftElement">Actif immobilisé net</td>       
    <td>663</td>       
    <td>0</td>       
    <td>0</td>       
    <td class="colorGreen">NS</td>       
    <td class="colorGreen">NS</td>     
    </tr>     
    <tr>       
    <td class="leftElement">Immos incorporelles</td>       
    <td>0</td>       
    <td>0</td>       
    <td>0</td>       
    <td class="colorGreen">NS</td>       
    <td class="colorGreen">NS</td>     </tr>   
    </tbody> 
    </table>
    il est tout de même simple de comprendre en voyant ça qu'une table contient un header et un body
    le body est fait de lignes qui contiennent des cellules.
    don en parcourant l'arbre DOM il n'y a rien de plus simple pour récupérer un tableau
    l'ago étant pour toute les lignes du tbody ajouter une ligne au résultat
    pour chaque cellule de la lignes ajouter le texte de la cellule dans la ligne du résultat.

    je ne sais pas ce qu'est ce bric à brac qui manipule des chaines. le DOM c'est pas un source HTML. le navigateur nativement construit le DOM il suffit de le parcourir.

    A+JYT

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Citation Envoyé par arthur1104 Voir le message
    Dans mon cas je ne veux pas récupérer du texte mais uniquement les valeurs du tableau dans des variables. Et vu que je ne sais pas trop comment fonctionne le principe des balises <td> je suis un peu paumé...
    Tu as essayé de comprendre le code que je t'ai donné ? Il se base sur le texte "Actif immobilisé" pour se caler sur une cellule, et ensuite tu peux récupérer les valeurs des cellules qui suivent. Le tout est d'avoir un repère.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Encore merci pour vos réponses, je vous montre ce que j'ai fait jusqu'à présent.
    Voici comment je récupère les valeurs de la page.

    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
    function Ana_Fiche_BG_Ent(Siret) {
        var maPage = openURL("http://www.bilansgratuits.fr/entreprise/bilans/" + Siret + ".htm", true);
     
        var Nom_Ent = strGetBal(maPage, '<h1 class="accroche">', '</h1>');
        var Nom_Ent = Nom_Ent.replace("'", " ");
        stdout.WriteLine('Nom Entreprise =' + Nom_Ent);
     
        var Adresse = strGetBal(maPage, '<p class="adresse">', '<br />');
        var Ville = strGetBal(strGetBal(maPage, '<p class="adresse">', '<p class="siret">'), '<br />', '</p>');
        var Ville = Ville.replace("'", " ");
        stdout.WriteLine('Ville Entreprise =' + Adresse + " " + Ville);
     
     
        var Act_Immo_Net = …..
        var immo_incorp =…
        ...
    SQLExec("insert into Societes(Nom_ent , Adresse, ville, Act_immo_net, Immo_incorp,...) values ('" + Nom_ent + "','" + Adresse + "',"' + ville + "','" + Act_immo_net + "','" + Immo_incorp,…"')");
    }
    SylvainPV: Oui j'ai essayé de comprendre ton code, malheureusement, je ne connais pas bien ce langage, c'est la première fois que je l'utilise. ça serait top si tu me montrais un exemple pour une variable que je pourrais adapter ensuite à toute les différentes actifs et passif de mon bilan. Merci par avance.

    Seikajin: Merci de m'avoir affiné la structure du code de manière plus visible. Par contre je suis désolé, mais je ne sais pas ce qu'est le DOM, j'ai regardé sur internet la définition, ça ne me parle pas trop. Quand tu dis "en parcourant l'arbre DOM", tu fais comment concrètement pour parcourir un arbre DOM ?

    Merci d'avance pour vos réponses, et encore désolé de ne pas avoir le niveau requis pour comprendre exactement toute vos réponses.

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    L'arbre DOM c'est le code HTML de ta page. Les balises sont les unes dans les autres, un peu comme les branches d'un arbre. Le noeud <html> est le tronc de l'arbre.



    Mon bout de code te permet de récupérer ta valeur 663, comme tu l'as demandé. Pour récupérer la deuxième cellule à droite, il suffit de faire deux fois .nextSibling. Pour les autres lignes, tu peux changer le texte. Ce n'est pas une technique optimale parce que si le site change de texte, plus rien ne fonctionne. Mais ça peut faire le job.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour SylvainPV,

    J'ai trouvé et adapté ça, sachant que je ne peux pas encore teste mon code,
    comment je pourrais adapté mon code avec le tient ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    body = document.getelementsbytagname("body")[0];
        bodyElements = body.getElementsByTagName("td");
     
        VarAct_Immo_Net_12= bodyElements[1]
        VarAct_Immo_Net_11= bodyElements[2]
        VarAct_immo_Net_10= bodyElements[3]

  10. #10
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Les deux premières lignes de ton code peuvent être remplacées par document.getElementsByTagName("td");, comme je le fais dans mon code.

    Si je traduis ton code : lire la valeur de la 2ème celulle dans le document

    Si je traduis le mien: lire la valeur de la cellule qui vient après "Actif immobilier net"

    A toi de voir l'approche que tu préfères.

    Et tu peux très bien tester ton code tout de suite : ouvre la page bilansgratuits.com que tu as mis en lien, ouvre la console JavaScript avec F12 et lâche le code !

  11. #11
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Pour simplifier (sic ! ) la réflexion de @arthur1104, ci-dessous une solution en jQuery.

    Certaines cellules des tables ont un contenu particulier, ce n'est pas trivial.

    Ce code récupère dans l'objet dataset, les données des tables contenues dans la division ayant la classe "container_bilans".

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    var dataset= {}, 
        rows, 
        temp,
        str;
     
    $( "div.container_bilans > div" ).each( function( i, item ){
        rows = [];
        temp = [];
     
        // item = div
        // jtem = th
     
        $( item ).find( "table > thead > tr > th" ).each( function( j, jtem ){
            temp.push( $( jtem ).text() );
        });
     
        rows.push( temp );
        temp = [];
     
        // ktem = tr
        // mtem = td
     
        $( item ).find( "table > tbody > tr" ).each( function( k, ktem ){
     
            $( ktem ).find( "td" ).each( function( m, mtem ){
                str = $( mtem ).text();
     
                if ( m === 0 ){
                    temp.push( str );
                } else {
                    str = str.replace( /\u00a0/g, "" ).replace( /\,/g, '.' );
     
                    if ( isNaN( str ) ){
                        temp.push( str );
                    } else {
                        temp.push( parseFloat( str ) );
                    }
                }
            });
     
            rows.push( temp );
            temp = [];
        });
     
        dataset[ $( item ).find( "h2" ).text() ] = rows;
        rows = [];
    });
     
    console.log( dataset );
     
    console.log( "nb de lignes dans Compte de résultat = ", 
        dataset[ "Compte de résultat" ].length );
    console.log( "nb de colonnes dans Compte de résultat : ", 
        dataset[ "Compte de résultat" ][ 0 ].length );
    console.log( "Valeur dans la cellule [ 12 (+1 = n° lignes) ][ 3 (+1 = n° colonnes) ] dans Compte de résultat : ", 
        dataset[ "Compte de résultat" ][ 12 ][ 3 ] );
    console.log( "Valeur dans la cellule [ 12 (+1 = n° lignes) ][ 4 (+1 = n° colonnes) ] dans Compte de résultat : ", 
        dataset[ "Compte de résultat" ][ 12 ][ 4 ] );

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous,
    j'ai essayé d'appliquer vos idées, pour le coup dans la console javascript de IE ça marche bien mais quand j'utilise ça avec l'invite de commande ça ne marche plus.
    Ci dessous j'ai mis les 2 codes. Le second marche bien, il va bien récupérer les données sur le site verif.com
    Ce que je ne comprend pas, c'est que pour le premier, qui est quasiment une copie du second car j'ai adapté le premier sur le second. Il a pour objectif da'ller récupérer les bilan et compte de résultat de société sur le site bilans gratuit.fr.
    je ne comprend pas pourquoi la page qui est récupéré dans le cache est une "page introuvable".
    J'ai juste remarque que le site bilan gratuit était en .htm et pas html comme verif, est-ce que ça peut jouer dans le fait que je n'arrive pas à récuérer le code source ?


    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    function Ana_Fiche_BG_Ent(Siret,FichName) {
        var maPage = openURL("http://www.bilansgratuits.fr/entreprise/bilans/"+Siret,FichName,true,true);
     
        //stdout.WriteLine('test=' + maPage);
        stdout.WriteLine('test=' + Siret);
        stdout.WriteLine('test3=' + maPage);
        var Nom_Ent = strGetBal(maPage, '<h1 class="accroche">', '</h1>');
        var Nom_Ent = Nom_Ent.replace("'", " ");
        stdout.WriteLine('Nom Entreprise =' + Nom_Ent);
     
        var Adresse = strGetBal(maPage, '<p class="adresse">', '<br />');
        var Ville = strGetBal(strGetBal(maPage, '<p class="adresse">', '<p class="siret">'), '<br />', '</p>');
        var Ville = Ville.replace("'", " ");
        stdout.WriteLine('Ville Entreprise =' + Adresse + " " + Ville);
     
        var body = maPage.document.getElementsByTagName("td");
     
        var actif_immo_net = body.OuterText[1]
        var immo_incorp = body.outerText[7]
        var immo_corp = body.outerText[13]
        var immo_fi = body.outerText[19]
        var actif_circ_net = body.outerText[25]
        var stock_ECN = body.outerText[31]
        var avances = body.outerText[37]
        var creances = body.outerText[43]
        var plac_dispo = body.outerText[49]
        var actif_tot = body.outerText[55]
        var CP = body.outerText[61]
        var autres_FP = body.outerText[67]
        var prov = body.outerText[73]
        var dettes = body.outerText[79]
        var passif_tot = body.outerText[85]
     
        var CA = body.outerText[91]
        var pexplt = body.outerText[97]
        var cexplt = body.outerText[103]
        var rexplt = body.outerText[109]
        var pfin = body.outerText[115]
        var cfin = body.outerText[121]
        var rfin = body.outerText[127]
        var RCAI = body.outerText[133]
        var pexp = body.outerText[139]
        var cexp = body.outerText[145]
        var rexp = body.outerText[151]
        var RN = body.outerText[157]
     
        SQLExec("insert into Bilans(Nom, Adresse, Siret) values ('" + Soc + "','" + Adresse + "','" + Siret + "') ");
    }
     
    function openURL(url,nom,garde,debug)
    {
      if (debug) stdout.WriteLine('httpcopy '+url+' cache\\'+nom+'.htm');
      if (!TailleFichier('cache\\'+nom+'.htm')) WshShell.Run('httpcopy '+url+' cache\\'+nom+'.htm',0,true)
      var ret=LireFichier('cache\\'+nom+'.htm');
      if (!garde) WsFs.DeleteFile('cache\\'+nom+'.htm',true);
     
      return ret;
    }

    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
    function Ana_Rech_VerifCom_siren(Siren,FichName,Soc)
    {
    	var maPage =openURL("http://www.verif.com/alert/"+Siren,FichName,true,true);
    	var RaisonSoc=strGetBal(maPage,'sur la société ','. <BR>');
    	//stdout.WriteLine('test=' + maPage); //rajouté
    	stdout.WriteLine('test=' + FichName); //rajouté
    	if(RaisonSoc=='')
    	{
    	stdout.WriteLine(' Erreur');
    	var Recherche_Init=Soc.replace(_REGEX_QUOTE," ");
    	var Recherche_Init=Recherche_Init.replace("/"," ");
    	SQLExec("insert into Societes(RechercheInitiale, SIREN, RaisonSoc) values ('"+Recherche_Init+"','"+Siren+"','#NA')");
    	}
    	else
    	{
    	var RaisonSocM=RaisonSoc.replace(_REGEX_SPACE,"-");
    	var RaisonSocM=RaisonSocM.replace(_REGEX_QUOTE,"-");
     
    	//stdout.WriteLine('Raison Sociale Modifie ='+RaisonSocM);
     
    	Ana_Fiche_Verif_Ent(Siren,RaisonSocM,FichName+"_"+i+'.txt',Soc)
    	}
    }
     
    function openURL(url,nom,garde,debug)
    {
      if (debug) stdout.WriteLine('httpcopy '+url+' cache\\'+nom+'.html');
      if (!TailleFichier('cache\\'+nom+'.html')) WshShell.Run('httpcopy '+url+' cache\\'+nom+'.html',0,true)
     
      var ret=LireFichier('cache\\'+nom+'.html');
      if (!garde) WsFs.DeleteFile('cache\\'+nom+'.html',true);
     
      return ret;
    }
    J'espère ne pas vous avoir trop ennuyé avec mes codes.

    ça serait super sympa si quelqu'un pouvait m'aiguiller avec ce code...
    Merci d'avance

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    EN bossant dessus, j'ai l'impression que le httpcopy ne fonctionne pas avec le site bilansgratuits.fr. Est-ce possible ?

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    J'ai l'impression que le programme httpcopy n'arrive pas à récupérer le code du site bilansgratuits.fr
    J'ai essayé avec le site société.com et ça marche, je peux récupérer la page html dans ma variable maPage.

    Maintenant, j'ai bien repris vos réponses précédentes mais dans mon programme, quand je veux affecter le tableau html à une variable , avec le code suivant élaboré avec vous plus haut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var maPage = openURL("http://www.bilansgratuits.fr/entreprise/bilans/"+Siret,FichName,true,true);
    var body = maPage.document.getElementsByTagName("td");
    je reçoit ce message: "Erreur d'exécution Microsft JScript: Cet objet ne gère pas cette propriété ou méthode",

    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
     
    function TailleFichier(filePath) 
    { 
        try { 
            var thefile = WsFs.getFile(filePath); 
            var size = thefile.size; 
    		if (size==0) return null;
            return size; 
         } 
         catch(err){} 
    	return null;
    } 
     
    function LireFichier(Fichier)
    {
       var f= WsFs.GetFile(Fichier);
       var ts = f.OpenAsTextStream( ForReading,TristateFalse);
       return ts.ReadAll();
    }
     
    function openURL(url,nom,garde,debug)
    {
      if (debug) stdout.WriteLine('httpcopy '+url+' cache\\'+nom+'.html');
      if (!TailleFichier('cache\\'+nom+'.html')) WshShell.Run('httpcopy '+url+' cache\\'+nom+'.html',0,true)
      var ret=LireFichier('cache\\'+nom+'.html');
      if (!garde) WsFs.DeleteFile('cache\\'+nom+'.html',true);
      return ret;
    }
     
    function transSRC(url,nom,debug)
    {
      if (debug) stdout.WriteLine(url);
      if (!TailleFichier('SRC\\'+nom)) WshShell.Run('httpcopy '+url+' SRC\\'+nom,0,!debug);
     
      return ;
    }
    Je ne comprends pas d'ou vient le problème, j'ai cherché sur le net, mais je n'ai pas trouvé grand chose de très concluant.
    ça serait vraiment très aimable de votre part de m'aiguiller dans ma recherche car je le répète, je débute vraiment en javascript et html.

    Cdlt

Discussions similaires

  1. récupérer le code source d'une procédure stockée
    Par mike00 dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 13/06/2007, 11h31
  2. Réponses: 1
    Dernier message: 28/02/2007, 11h59
  3. Récupérer le code source d'un fichier créé dynamiquement
    Par jeanvincent dans le forum Langage
    Réponses: 2
    Dernier message: 06/12/2006, 15h09
  4. [Reseau] Récupérer le code source d'une URL
    Par gogolpexe dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 29/06/2005, 14h06
  5. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16

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