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

Web Perl Discussion :

Bot Perl


Sujet :

Web Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Bot Perl
    Bonjour à tous,

    je rencontre des difficultés avec la conception de mon bot pour soumettre automatiquement mes articles sur un site. Mon soucis est que lors de mes déplacements (fréquents) je n'ai pas toujours de connexion internet et donc je rédige mes articles dans mon éditeur de texte/traitement de texte.
    Le soucis est qu'au bout d'un moment, faire du copier-coller sur 700 articles (après une semaine de boulot...) c'est pas l'idéal. Du coup je me suis mis en tête de créer un bot qui fasse le boulot du copier-coller pour moi.

    J'ai appris perl la semaine dernière (j'ai commencé, hein, je ne prétends pas avoir "tout" appris de perl en si peu de temps!!! loin de là, mais j'apprends à mon rythme) et je suis maintenant capable de créer un bot qui va lire mes fichiers textes un à un dans le dossier spécifié, me les séparer en "titre, intro, paragraphes 1, 2, 3 etc, mots clés, tags etc", se connecter au site où je poste mes articles avec mon pseudo et mon mot de passe.

    Le soucis vient du fait que les champs correspondant aux paragraphes sont générés par du JavaScript et donc avec le module que j'utilise (MECHANIZE) je ne peux rien faire!

    Je vous poste plus bas le code de la partie contenant les champs qui n'apparaissent que lorsque je me connecte avec un navigateur capable de comprendre le JavaScript et celui de la page lorsque le javascript est désactivé ou que je me connecte avec mon bot, si cela peut aider quelqu'un à m'aider. Mon code est aussi dispo si besoin (mais vu que je ne sais tout simplement pas comment m'y prendre...).


    1) partie générée par le javascript
    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
    <form class="ecrire" action="/fiche/add" method="post" enctype="multipart/form-data" id="form" onsubmit="return check_form()">
            <fieldset>
            <input id="requestId" name="requestId" value="" type="hidden">
                <legend><img src="/img/a.gif" alt="A.">&nbsp;Donnez un titre à votre article</legend>
                <label for="title">Descriptif, court et efficace, voilà le titre idéal !</label>
                <input class="champ" id="title" name="title" value="" type="text">
            </fieldset>
            <fieldset>
     
                <legend><img src="/img/b.gif" alt="B.">&nbsp;Illustrez votre article</legend>
                <label for="file">Envoyez une image pour illustrer votre article (assurez-vous que vous avez le droit d'utiliser cette image).</label>
                <img src="" alt="">
                <input class="fichier" id="file" name="file" accept="image/gif,image/jpeg,image/jpeg" type="file">
            </fieldset>
            <fieldset>
                <legend><img src="/img/c.gif" alt="C.">&nbsp;Introduction</legend>
     
                <label for="intro">Quelques mots pour résumer votre article.</label>
                <textarea class="champ" cols="70" rows="5" id="intro" name="intro"></textarea>
            </fieldset>
            <fieldset>
                <legend><img src="/img/d.gif" alt="D.">&nbsp;Listes des fournitures</legend>
                <label for="requiers">Listez ici les éléments nécessaires à la réalisation de votre article (passez à la ligne après chaque fourniture).</label>
                <textarea class="champ" id="requiers" cols="70" rows="5" name="requiers"></textarea>
     
            </fieldset>
            <fieldset>
                <legend><img src="/img/e.gif" alt="E.">&nbsp;Étapes de réalisation</legend>
            <div id="stepsDiv"><label for="text0">Étape 1</label><span class="supprimer"><a href="javascript:stepsDB.deleteStep(0);stepsDB.update()"><img src="/img/supprimer.gif">&nbsp;Supprimer cette étape</a></span><p style="margin: 10px 0pt; font-size: 0.8em; font-style: italic; color: rgb(102, 102, 102);" id="upload_p0">Envoyez une image pour illustrer cette étape (assurez-vous que vous avez le droit d'utiliser cette image).<br><img src=""><input class="fichier" name="imageFile0" id="imageFile0" type="file"></p><textarea class="champ" cols="80" rows="10" type="text" name="text0" id="text0"></textarea><input name="imageId0" id="imageId0" value="0" type="hidden">   <input name="idStep0" id="idStep0" value="0" type="hidden"><br><br><br><label for="text1">Étape 2</label><span class="supprimer"><a href="javascript:stepsDB.deleteStep(1);stepsDB.update()"><img src="/img/supprimer.gif">&nbsp;Supprimer cette étape</a></span><p style="margin: 10px 0pt; font-size: 0.8em; font-style: italic; color: rgb(102, 102, 102);" id="upload_p1">Envoyez une image pour illustrer cette étape (assurez-vous que vous avez le droit d'utiliser cette image).<br><img src=""><input class="fichier" name="imageFile1" id="imageFile1" type="file"></p><textarea class="champ" cols="80" rows="10" type="text" name="text1" id="text1"></textarea><input name="imageId1" id="imageId1" value="0" type="hidden">   <input name="idStep1" id="idStep1" value="0" type="hidden"><br><br><br><label for="text2">Étape 3</label><span class="supprimer"><a href="javascript:stepsDB.deleteStep(2);stepsDB.update()"><img src="/img/supprimer.gif">&nbsp;Supprimer cette étape</a></span><p style="margin: 10px 0pt; font-size: 0.8em; font-style: italic; color: rgb(102, 102, 102);" id="upload_p2">Envoyez une image pour illustrer cette étape (assurez-vous que vous avez le droit d'utiliser cette image).<br><img src=""><input class="fichier" name="imageFile2" id="imageFile2" type="file"></p><textarea class="champ" cols="80" rows="10" type="text" name="text2" id="text2"></textarea><input name="imageId2" id="imageId2" value="0" type="hidden">   <input name="idStep2" id="idStep2" value="0" type="hidden">
     
            </div>
            <div id="future_step0">
                <p><img src="/img/puce_plus_bleue.gif" alt="">&nbsp;<a href="javascript:stepsDB.addStep('', 0, '', 'imageFile', '');stepsDB.update()" title="Ajouter une étape">Ajoutez une étape</a></p>
            </div>
            </fieldset>
     
            <fieldset>
                <legend><img src="/img/f.gif" alt="F.">&nbsp;Astuces &amp; Mises en garde</legend>
     
                <div>
                    <label for="tips">Indiquez ici les petites astuces à retenir (passez à la ligne après chaque astuce).</label>
                    <textarea class="champ" cols="70" rows="5" id="tips" name="tips"></textarea>
                </div>
                <div>
                    <label for="warnings">Notez ici les mises en garde importantes à retenir (passez à la ligne après chaque mise en garde).</label>
                    <textarea class="champ" cols="70" rows="5" id="warnings" name="warnings"></textarea>
     
                </div>
            </fieldset>
     
                    <div>
                <input value="3886" name="authorId" type="hidden">
                <input value="1" name="video" type="hidden">
                <input value="" name="img" type="hidden">
                <input value="" name="siteId" type="hidden">
                <input value="" name="idHowTo" type="hidden">
     
                <input name="nSteps" id="nSteps" type="hidden">
            </div>
            <button type="button" class="bouton" onclick="javascript:spellCheck()"><span><span>Vérifier l'orthographe</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=brouillon');"><span><span>Sauver comme brouillon</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=test');"><span><span>Prévisualiser</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=continue');"><span><span>Enregistrer et continuer</span></span></button>
        </form>
    Code sans Javascript activé

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta name="verify-v1" content="Y5YzTqp+chpHZARKg37BbptBHuvC0UMmhleYWo3UH8c=" /> 
        <meta name="msvalidate.01" content="90865FC45FF24A668E495F1C0DE44F94" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Comment fait-on ? Comment faire un maximum de choses...</title>
        <meta http-equiv="Cache-Control" content="no-cache" />
        <meta http-equiv="Expires" content="-1" />
        <meta http-equiv="Pragma" content="no-cache" />
     
        <meta content="Comment fait-on ? Questions et réponses sur tout" name="description" />
        <link rel="alternate" type="application/rss+xml" title="Recevoir les derniers articles" href="/rss/rss/site" />
        <link href="/css/jquery.autocomplete.css" rel="stylesheet" type="text/css" media="screen" />
                <link href="/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
                    <script type="text/javascript" src="/js/jquery.min.js"></script>
        <script type="text/javascript" src="/js/jquery.corner.js"></script>
        <script type="text/javascript" src="/js/jquery.autocomplete.pack.js"></script>
     
        <script type="text/javascript" src="/js/swfobject.js"></script>
        <script type="text/javascript" src="/js/rollover.js"></script>
     
        <!--<script type="text/javascript">
            var flashvars = "clickTAG=/membre";
            var params = {};
            var attributes = {};
            swfobject.embedSWF("/img/welcome.swf", "pub450x100", "450", "100", "8.0.0", "/js/expressInstall.swf", flashvars, params, attributes);
        </script>-->
     
        <script type="text/javascript" src="/js/finescript.js"></script>
        <script type="text/javascript" src="/js/categorize.js"></script>
        </head>
     
    <body onload="MM_preloadImages('/img/i_utile_on.gif')">
    <div id="histo" style="position:absolute;background-color:#ffffff;border:solid 1px black;visibility:hidden;font-size:10px;"></div>
            <!--<div id="header" class="header">
            <a href="/">Accueil</a>
            <a href="/categorie">Questions-réponses</a>
            <a href="/community/community">Communauté</a>        <a href="/membre">Mon profil</a>
                        hello  <a href="/membre/LogOff">se Déco</a>
                </div>
        -->
        <div id="alertBox" class="alertBox"></div>
        <div id="conteneur">
     
                        <div id="header">
                    <h1><a href="/"><img src="/img/logo.gif" alt="Comment fait-on ? Questions et réponses sur tout" /></a></h1>
                    <h2><a href="/"><img src="/img/accroche.gif" alt="Réponses intelligentes à toutes les questions pratiques" /></a></h2>
                    <form action="/recherche/fiche" method="get" id="search_form" onsubmit="return $('#searchInput')[0].value != 'Mot-cl&eacute;, pseudo de membre, ...'">
                    <div class="recherche">
     
                            <label for="searchInput">Recherche</label>
                            <input name="key" class="champ" type="text" value="Entrez votre recherche..." id="searchInput" size="30" onfocus="this.value=''" />
                            dans
                            <button type="submit" class="bouton" onclick="document.getElementById('search_form').action='/recherche/Fiche';"><span><span>Articles</span></span></button><!--<button type="submit" class="bouton" onClick="document.getElementById('search_form').action='/recherche/Membre'"><span><span>Membres</span></span></button>-->
                    </div>
                    </form>
                </div>
                    <div id="haut">
     
                <ul id="menuhaut">
                    <li><a href="/">accueil</a></li>
                    <li><a href="/categorie">catégories</a></li>
                    <li><a href="/fiche/editer">écrire</a></li>
                    <li><a href="/community/community">Communauté</a></li>
                    <li></li>
                    <li><a href="/membre">mon compte</a></li>
     
                </ul>
                <div class="login">
                                                                                            <p class="bienvenue">Hello ! <a href="/membre/LogOff"><img style="margin:0 0 0 10px; padding:0; vertical-align:middle;" src="/img/croix_deco.gif" alt=" " /></a><a class="bouton" href="/membre/LogOff">Déconnexion</a></p>
                                                            <!--<form action="" method="get" name="login">
                        <input name="login" class="champ" type="text" value="identifiant" size="30" onFocus="this.value=''" />
                        <input name="mdp" class="champ" type="text" value="mot de passe" size="30" onFocus="this.value=''" />
                        <button type="submit" class="bouton">OK</button>
                    </form>-->
                </div>
            </div>
     
     
    <script src="/js/jquery-dom.js" type="text/javascript"></script>
     
    <script src="/js/create_step.js" type="text/javascript"></script>
    <script src="/speller/spellChecker.js" type="text/javascript"></script>
    <script type="text/javascript">
    <!--
    /*var current = 0;
     
    function addStep(article, siteId) {
         current++;
     
         document.getElementById("future_step" + current).innerHTML = "<div><label for='text" + (current+1) + "'>&Eacute;tape " + (current+1) + "</label><span class='supprimer'><a href='javascript:deleteStep(" + (current) + ")'>Supprimer cette étape</a></span><textarea  class='champ' cols='80' rows='10' type='text' name='text" + current + "' id='text" + current + "'></textarea><input type='hidden' name='imageId" + current + "' id='imageId" + current + "' value=''> <p style='font-size:0.8em; font-style:italic; color:#666; margin:10px 0;'>Envoyez une image pour illustrer cette étape (assurez-vous que vous avez le droit d'utiliser cette image).<input class='fichier' type='file' name='imageFile" + current + "' /></p>   <input type='hidden' name='idStep" + current + "' id='idStep" + current + "' value='0'></input><div id='future_step" + (current + 1) + "'><p><img src='/img/puce_plus_bleue.gif' alt='' />&nbsp;<a href='javascript:addStep()' title='Ajouter une étape'>Ajouter une étape</a></p></div></div>";
    }
     
    function deleteStep(id) {
        document.getElementById("text" + id).value = "";
        document.getElementById("idStep" + id).value = "";
        document.getElementById("imageId" + id).value = "";
        for (i = id; i < current; i++) {
            document.getElementById("text" + i).value = document.getElementById("text" + (i+1)).value;
            document.getElementById("idStep" + i).value = document.getElementById("idStep" + (i+1)).value;
            document.getElementById("imageId" + i).value = document.getElementById("imageId" + (i+1)).value;
        }
        document.getElementById("text" + (current)).value = "";
        document.getElementById("idStep" + (current)).value = "";
        document.getElementById("imageId" + (current)).value = "";
    }*/
     
     
    var stepsDB = new steps("stepsDiv", "stepsDB");
     
    function check_form() {
        stepsDB.checkSteps();
     
     
        if (document.getElementById("form").action.substr(document.getElementById("form").action.lastIndexOf("?opt=") + 5) == "continue") {
            for (i = 0; $("#text" + i)[0] && $("#text" + i)[0].value != ""; i++);
            if (i < 3) {
                alert("il faut au moins trois etape");
                return false;
            }
        }
     
     
     
     
        return true;
    }
     
    function setAction(action) {
        document.getElementById("form").action = action;
        return true;
    }
     
    function spellCheck() {
        var speller = new spellChecker();
        var tmp = new Array();
        for (i = 0; i < stepsDB.getNSteps(); i++)
            tmp.push($("#text" + i)[0]);
        tmp.push($("#title")[0]);
        tmp.push($("#intro")[0]);
        tmp.push($("#requiers")[0]);
        tmp.push($("#tips")[0]);
        tmp.push($("#warnings")[0]);
        speller.textInputs = tmp;
        speller.openChecker();
    }
     
    function resume() {
     
    }
    //-->
    </script>
     
     
    <div id="gauche_large">
        <div class="txt_inscription">
            <p>Exemple d article</p>
        </div>
        <img src="/img/article_exemple_1.gif" alt="" />
     
    </div>
     
    <div id="centre2col300">
        <h1 class="form">&Eacute;crire un nouvel <strong>article</strong></h1>
        <form class="ecrire" action="/fiche/add" method="post" enctype="multipart/form-data" id="form" onsubmit="return check_form()">
            <fieldset>
            <input type="hidden" id="requestId" name="requestId" value="" />
                <legend><img src="/img/a.gif" alt="A." />&nbsp;Donnez un titre à votre article</legend>
                <label for="title">Descriptif, court et efficace, voilà le titre idéal !</label>
     
                <input class="champ" id="title" type="text" name="title"  value="" />
            </fieldset>
            <fieldset>
                <legend><img src="/img/b.gif" alt="B." />&nbsp;Illustrez votre article</legend>
                <label for="file">Envoyez une image pour illustrer votre article (assurez-vous que vous avez le droit d'utiliser cette image).</label>
                <img src="" alt="" />
                <input class="fichier" type="file" id="file" name="file" accept="image/gif,image/jpeg,image/jpeg" />
            </fieldset>
     
            <fieldset>
                <legend><img src="/img/c.gif" alt="C." />&nbsp;Introduction</legend>
                <label for="intro">Quelques mots pour résumer votre article.</label>
                <textarea class="champ" cols="70" rows="5" id="intro" name="intro"></textarea>
            </fieldset>
            <fieldset>
                <legend><img src="/img/d.gif" alt="D." />&nbsp;Listes des fournitures</legend>
     
                <label for="requiers">Listez ici les éléments nécessaires à la réalisation de votre article (passez à la ligne après chaque fourniture).</label>
                <textarea class="champ" id="requiers" cols="70" rows="5" name="requiers"></textarea>
            </fieldset>
            <fieldset>
                <legend><img src="/img/e.gif" alt="E." />&nbsp;&Eacute;tapes de réalisation</legend>
            <div id="stepsDiv">
                                    <script type="text/javascript">
            <!--
                stepsDB.sync();
                stepsDB.update();
            //-->
            </script>
     
                    <script type="text/javascript">
            <!--
                        stepsDB.addStep('', 0, 0, 'imageFile', '');
                        stepsDB.addStep('', 0, 0, 'imageFile', '');
                        stepsDB.addStep('', 0, 0, 'imageFile', '');
                        stepsDB.update();
            //-->
                    </script>
            </div>
            <div id="future_step0">
                <p><img src="/img/puce_plus_bleue.gif" alt="" />&nbsp;<a href="javascript:stepsDB.addStep('', 0, '', 'imageFile', '');stepsDB.update()" title="Ajouter une étape">Ajoutez une étape</a></p>
            </div>
            </fieldset>
     
            <fieldset>
     
                <legend><img src="/img/f.gif" alt="F." />&nbsp;Astuces &amp; Mises en garde</legend>
                <div>
                    <label for="tips">Indiquez ici les petites astuces à retenir (passez à la ligne après chaque astuce).</label>
                    <textarea class="champ" cols="70" rows="5" id="tips" name="tips"></textarea>
                </div>
                <div>
     
                    <label for="warnings">Notez ici les mises en garde importantes à retenir (passez à la ligne après chaque mise en garde).</label>
                    <textarea class="champ" cols="70" rows="5" id="warnings" name="warnings"></textarea>
                </div>
            </fieldset>
     
                    <div>
                <input type="hidden" value="3886" name="authorId" />
                <input type="hidden" value="1" name="video" />
     
                <input type="hidden" value="" name="img" />
                <input type="hidden" value="" name="siteId" />
                <input type="hidden" value="" name="idHowTo" />
                <input type="hidden" name="nSteps" id="nSteps" />
            </div>
            <button type="button" class="bouton" onclick="javascript:spellCheck()"><span><span>Vérifier l'orthographe</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=brouillon');"><span><span>Sauver comme brouillon</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=test');"><span><span>Prévisualiser</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/add?opt=continue');"><span><span>Enregistrer et continuer</span></span></button>
        </form>
     
    </div>
     
    <script type="text/javascript">
    </script>
     
            <div id="pied">
                <ul>
                    <li><a href="/">Accueil</a></li>
                    <li><a href="/a_propos/a_propos">&Agrave; propos de Comment fait-on ?</a></li>
                    <li><a href="/a_propos/cgu">CGU</a></li>
     
                    <!--<li><a href="/a_propos/devenir_redacteur">Devenez Rédacteur!</a></li>-->
                    <li>© FineMedia 2008</li>
                </ul>
                        </div>
        </div>
     
            <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
        <script type="text/javascript">
        <!--
            _uacct = "UA-5096746-9";
            urchinTracker();
            _uff=0;
            _uacct = "UA-5096806-1";
            urchinTracker();
        //-->
            </script>
     
    </body>
    </html>
    J'arrive à faire à peu près ce que je veux sauf passer les variables "text0", etc pour les poster.
    Sur la page suivante, il y a un champ select lui aussi généré par du JavaScript:
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <meta name="verify-v1" content="Y5YzTqp+chpHZARKg37BbptBHuvC0UMmhleYWo3UH8c=" /> 
        <meta name="msvalidate.01" content="90865FC45FF24A668E495F1C0DE44F94" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Comment fait-on ? Comment faire un maximum de choses...</title>
        <meta http-equiv="Cache-Control" content="no-cache" />
        <meta http-equiv="Expires" content="-1" />
        <meta http-equiv="Pragma" content="no-cache" />
     
        <meta content="Comment fait-on ? Questions et réponses sur tout" name="description" />
        <link rel="alternate" type="application/rss+xml" title="Recevoir les derniers articles" href="/rss/rss/site" />
        <link href="/css/jquery.autocomplete.css" rel="stylesheet" type="text/css" media="screen" />
                <link href="/css/styles.css" rel="stylesheet" type="text/css" media="screen" />
                    <script type="text/javascript" src="/js/jquery.min.js"></script>
        <script type="text/javascript" src="/js/jquery.corner.js"></script>
        <script type="text/javascript" src="/js/jquery.autocomplete.pack.js"></script>
     
        <script type="text/javascript" src="/js/swfobject.js"></script>
        <script type="text/javascript" src="/js/rollover.js"></script>
     
        <!--<script type="text/javascript">
            var flashvars = "clickTAG=/membre";
            var params = {};
            var attributes = {};
            swfobject.embedSWF("/img/welcome.swf", "pub450x100", "450", "100", "8.0.0", "/js/expressInstall.swf", flashvars, params, attributes);
        </script>-->
     
        <script type="text/javascript" src="/js/finescript.js"></script>
        <script type="text/javascript" src="/js/categorize.js"></script>
        </head>
     
    <body onload="MM_preloadImages('/img/i_utile_on.gif')">
    <div id="histo" style="position:absolute;background-color:#ffffff;border:solid 1px black;visibility:hidden;font-size:10px;"></div>
            <!--<div id="header" class="header">
            <a href="/">Accueil</a>
            <a href="/categorie">Questions-réponses</a>
            <a href="/community/community">Communauté</a>        <a href="/membre">Mon profil</a>
                        hello  <a href="/membre/LogOff">se Déco</a>
                </div>
        -->
        <div id="alertBox" class="alertBox"></div>
        <div id="conteneur">
     
                        <div id="header">
                    <h1><a href="/"><img src="/img/logo.gif" alt="Comment fait-on ? Questions et réponses sur tout" /></a></h1>
                    <h2><a href="/"><img src="/img/accroche.gif" alt="Réponses intelligentes à toutes les questions pratiques" /></a></h2>
                    <form action="/recherche/fiche" method="get" id="search_form" onsubmit="return $('#searchInput')[0].value != 'Mot-cl&eacute;, pseudo de membre, ...'">
                    <div class="recherche">
     
                            <label for="searchInput">Recherche</label>
                            <input name="key" class="champ" type="text" value="Entrez votre recherche..." id="searchInput" size="30" onfocus="this.value=''" />
                            dans
                            <button type="submit" class="bouton" onclick="document.getElementById('search_form').action='/recherche/Fiche';"><span><span>Articles</span></span></button><!--<button type="submit" class="bouton" onClick="document.getElementById('search_form').action='/recherche/Membre'"><span><span>Membres</span></span></button>-->
                    </div>
                    </form>
                </div>
                    <div id="haut">
     
                <ul id="menuhaut">
                    <li><a href="/">accueil</a></li>
                    <li><a href="/categorie">catégories</a></li>
                    <li><a href="/fiche/editer">écrire</a></li>
                    <li><a href="/community/community">Communauté</a></li>
                    <li></li>
                    <li><a href="/membre">mon compte</a></li>
     
                </ul>
                <div class="login">
                                                                                            <p class="bienvenue">Hello dio ! <a href="/membre/LogOff"><img style="margin:0 0 0 10px; padding:0; vertical-align:middle;" src="/img/croix_deco.gif" alt=" " /></a><a class="bouton" href="/membre/LogOff">Déconnexion</a></p>
                                                            <!--<form action="" method="get" name="login">
                        <input name="login" class="champ" type="text" value="identifiant" size="30" onFocus="this.value=''" />
                        <input name="mdp" class="champ" type="text" value="mot de passe" size="30" onFocus="this.value=''" />
                        <button type="submit" class="bouton">OK</button>
                    </form>-->
                </div>
            </div>
     
    <script type="text/javascript">
     
            var currentWebLink = 0;
            var links = new Array(
    new Array(27631, "Comment accélerer le chargement de Ubuntu ou Luzayi Linux ?")
    ,new Array(27635, "Comment activer le Concurrent Booting ?")
    ,new Array(27636, "Comment réduire le nombre de consoles actives sous Luzayi Linux ou Ubuntu Linux ?")
    ,new Array(28075, "Comment gérer ses photos avec Picasa sous Debian, Ubuntu et Luzayi ?")
    ,new Array(28091, "Comment lire les animations Flash sous Debian, Ubuntu, Luzayi ?")
            );
     
    <!--
    function setLinksId() {
            for (i = 0; i < links.length; i++)
                    document.getElementById("idLinks").value += (i ? "|" : "") + links[i][0];
    }
    var last = "";
     
    function refresh_search() {
            if (last != document.getElementById("search").value) {
                    last = document.getElementById("search").value;
                    getPageAsync("/recherche/FicheLinking/" + last + "/", "search_result");
            }
            setTimeout("refresh_search();", 2000);
    }
     
    function refresh_links() {
            document.getElementById("linked").innerHTML = "";
            for (i = 0; i < links.length; ++i)
                    document.getElementById("linked").innerHTML += links[i][1] + "<a class='suppr' href='javascript:deleteLink(" + links[i][0] + ")'>Supprimer</a><br />";
    }
     
    function ficheHandler(id, titre) {
            for (i = 0; i < links.length; ++i)
                    if (links[i][0] == id)
                            return;
            links[links.length] = new Array(id, titre);
            refresh_links();
    }
     
    function deleteLink(id) {
            for (i = 0; i < links.length; ++i)
                    if (links[i][0] == id) {
                            links.splice(i, 1);
                            break;
                    }
            refresh_links();
    }
     
    function addLinkInput() {
            var tmp = new Array();
        var legends = new Array();
            for (i = 0; i < currentWebLink; ++i) {
                    tmp[i] = document.getElementById("webLink" + i).value;
            legends[i] = document.getElementById("webLinkLegend" + i).value;
        }
            document.getElementById("webLinks").innerHTML += "<div style='float:left;width:300px;'><label for='webLink" + currentWebLink + "'>Adresse du site</label><input class='champUrl' style='margin:5px 0 0 0;' type='text' name='webLink" + currentWebLink + "' size='10' id='webLink" + currentWebLink + "' /></div><div style='float:left;width:300px;'><label for='webLinkLegend" + currentWebLink + "'>Légende du lien:</label><input type='text' class='champUrl' style='margin:5px 0 0 0;' size='10' name='webLinkLegend" + currentWebLink + "' id='webLinkLegend" + currentWebLink + "' /><a href='javascript:delLinkInput(" + currentWebLink + ")'>suppr</a></div>";
            for (i = 0; i < currentWebLink; ++i) {
                    document.getElementById("webLink" + i).value = tmp[i];
            document.getElementById("webLinkLegend" + i).value = legends[i];
        }
            currentWebLink++;
    }
     
    function delLinkInput(j) {
            var tmp = new Array();
        var legends = new Array();
            for (i = 0; i < currentWebLink; ++i) {
                    tmp[i] = document.getElementById("webLink" + i).value;
            legends[i] = document.getElementById("webLinkLegend" + i).value;
        }
        tmp.splice(j, 1);
        legends.splice(j, 1);
        document.getElementById("webLinks").innerHTML = "";
        --currentWebLink;
        for (i = 0; i < tmp.length; ++i)
                document.getElementById("webLinks").innerHTML += "<div style='float:left;width:300px;'><label for='webLink" + i + "'>Adresse du site</label><input class='champUrl' style='margin:5px 0 0 0;' type='text' name='webLink" + i + "' size='10' id='webLink" + i + "' /></div><div style='float:left;width:300px;'><label for='webLinkLegend" + i + "'>Légende du lien:</label><input type='text' class='champUrl' style='margin:5px 0 0 0;' size='10' name='webLinkLegend" + i + "' id='webLinkLegend" + i + "' /><a href='javascript:delLinkInput(" + i + ")'>suppr</a></div>";
        for (i = 0; i < tmp.length; ++i) {
            document.getElementById("webLink" + i).value = tmp[i];
            document.getElementById("webLinkLegend" + i).value = legends[i];
        }
    }
     
    function setQual(q) {
            //alert(q);
            tmp = new Array("farfelu", "drole", "utile", "enrichissant");
            document.getElementById('qualificatif').value = q;
            for (i = 1; i <= 4; i++)
                    document.getElementById("" + i).innerHTML = "<img src='/img/i_" + tmp[i-1] + "_" + (q == i ? "en" : "dis") + "abled.gif' id='" + tmp[i-1] + "' alt='' />";
    }
     
    function setAction(action) {
        document.getElementById("form").action = action;
    }
     
    catObj = new categorizer();
     
    function checkForm() {
        if ($("#tagText")[0].value == "") {
                alert("Vous devez entrer au moins un tag");
                $("#tagText")[0].focus();
                return false;
            }
        setLinksId();
        return (catObj.setCategIdList());
    }
    //-->
     
    </script>
     
    <div id="gauche_large">
        <div class="txt_inscription">
            <p>Exemple d'article</p>
        </div>
        <img src="/img/article_exemple_2.gif" alt="" />
    </div>
     
    <div id="centre2col300">
        <h1 class="form">Classez votre <strong>article</strong></h1>
     
        <form class="ecrire" id="form" method="post" action="/fiche/lastStep/28134" onsubmit="return checkForm()">
            <fieldset>
                <legend><img src="/img/g.gif" alt="G." />&nbsp;Définissez les catégories de votre article<br /></legend>
                <p style="margin:0 0 10px 0;">Choisissez thème/catégorie/chapitre de votre article, puis cliquez sur Ajouter.</p>
                <p style="margin:0 0 10px 0;">Voici les categories que vous aviez choisies</p>            <div id="res" class="resultat"></div>
                <p  style="margin:0 0 10px 0;"><font color="#aa0000">Si vous souhaitez classer votre article dans plusieurs thèmes ou catégories, recommencez l'opération.</font></p>
     
                <div class="categorie">
                    <label for="base">Thème</label>
                    <select class="liste" size="8" id="base" onchange="catObj.loadParent()"></select>
                </div>
                <div class="categorie">
                    <label for="parent">Catégorie</label>
                    <select class="liste" size="8" id="parent" onchange="catObj.loadCateg()"></select>
                </div>
     
                <div class="categorie">
                    <label for="categorie">Chapitre</label>
                    <select class="liste" size="8" id="categorie"></select>
                </div>
                <p style="text-align:right;"><a href="javascript:void(0)" onclick="catObj.addCategToChoice()"><span><span>Ajouter</span></span></a></p>
            </fieldset>
     
            <input type="hidden" name="idCateg" id="idCateg" />
            <input type="hidden" name="idLinks" id="idLinks" />
     
     
            <fieldset>
                <legend>H. Quels sont les thèmes principaux abordés ?</legend>
                <label for="tagText">Exemple de mot-clés : ordinateur, prix, décoration, etc. Cela permet aux lecteurs de trouver plus facilement votre article (<font color="#880000">séparez chaque mot-clé par un espace</font>).</label>
                <textarea class="champ" rows="2" cols="50" name="tagText" id="tagText">indexation linux luzayi ubuntu</textarea>
                <div id="possibilities"></div>
                <!--<p style="padding:10px 0 0 0; text-align:right;"><button type="submit" onclick="" class="bouton"><span><span>Ajouter</span></span></button></p>-->
     
            </fieldset>
     
            <fieldset>
                <legend><img src="/img/i.gif" alt="I." />&nbsp;Comment définiriez-vous cet article ?</legend>
                                   <img src="/img/i_utile_enabled.gif" id="utile" alt="" />
                                                <img src="/img/i_enrichissant_disabled.gif" id="enrichissant" alt="" />
                                                <img src="/img/i_farfelu_disabled.gif" id="farfelu" alt="" />
                                                <img src="/img/i_drole_disabled.gif" id="drole" alt="" />
                                         <input type="hidden" name="qualificatif" id="qualificatif" />
     
            </fieldset>
     
            <fieldset>
                <legend><img src="/img/j.gif" alt="J." />&nbsp;Liens utiles</legend>
                <!--<div id="webLinks">
                            <label>Entrez l'adresse du site web (ex.: http://www.comment-fait-on.fr)</label>
                            <input class="champ" type='text' name='webLink3' id='webLink3' value='' />
                            <script type="text/javascript">
                                    currentWebLink = 4;
                            </script>
                </div>-->
                <p><a href="javascript:addLinkInput()">Ajoutez un lien vers un autre site web</a></p>
                <div id="webLinks">
                                        <div style="float:left; width:300px;">
     
                            <label for="webLink0">Adresse du site</label>
                            <input class="champUrl" type='text' name='webLink0' id='webLink0' value='http://www.zaya-dio.com' />
                        </div>
                        <div style="float:left; width:300px;">
                            <label for='webLinkLegend0'>Légende du lien:</label>
                            <input type='text' class='champUrl' size='10' name='webLinkLegend0' id='webLinkLegend0' value='Luzayi Live USB' />
                            <a href='javascript:delLinkInput(0)'>suppr</a>
     
                        </div>
                            <script type="text/javascript">
                            <!--
                                    currentWebLink = 1;
                            //-->
                                                    </script>
                                         <div style="float:left; width:300px;">
                            <label for="webLink1">Adresse du site</label>
                            <input class="champUrl" type='text' name='webLink1' id='webLink1' value='http://formations.zaya-dio.com' />
                        </div>
                        <div style="float:left; width:300px;">
                            <label for='webLinkLegend1'>Légende du lien:</label>
     
                            <input type='text' class='champUrl' size='10' name='webLinkLegend1' id='webLinkLegend1' value='Formations pour apprendre à maitriser Linux' />
                            <a href='javascript:delLinkInput(1)'>suppr</a>
                        </div>
                            <script type="text/javascript">
                            <!--
                                    currentWebLink = 2;
                            //-->
                                                    </script>
                                 </div>
            </fieldset>
     
            <fieldset>
                <legend>K. Articles autour du même sujet</legend>
     
                <label for="search">Liez votre article avec d'autres articles Comment fait-on.</label>
                <p class="note">Commencez à saisir un mot-clé, nous vous proposerons d'autres articles autour de ce mot-clé. Cliquez ensuite sur les articles qui vous semblent les plus pertinents.</p>
                <p><input class="champ" type="text" id="search" /></p>
                <div id="search_result" class="resultat"></div>
                <div id="linked" class="resultat"></div>
            </fieldset>
     
     
     
            <p><button type="submit" onclick="setAction('/fiche/lastStep/28134?opt=brouillon');" class="bouton"><span><span>Enregistrer comme brouillon</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/lastStep/28134?opt=test');"><span><span>Prévisualiser</span></span></button>&nbsp;&nbsp;<button type="submit" class="bouton" onclick="setAction('/fiche/lastStep/28134?opt=continue');"><span><span>Enregistrer et publier</span></span></button></p>
     
        </form>
    </div>
     
    <script type="text/javascript">
     
            last = document.getElementById("search").value;
            document.getElementById("idCateg").value = "";
            document.getElementById("idLinks").value = "";
                catObj.addCategToChoice(2431, "Hi Tec, Téléphonie, Internet", "Software", "Autres software")
                //setQual(3);
            /*fillSelection(0, "base");
            addOldCategToChoice();*/
        catObj.loadBase();
            refresh_links();
            refresh_search();
        var currentTagInput = $("#tagText")[0].value;
    <!--    
     
            $('#tagText').autocomplete("/TagAutocompleteControler/", {                                      
                    multiple: true,
            multipleSeparator: " ",
                    matchContains: true                                                                     
            });
    //-->
     
    </script>
     
            <div id="pied">
                <ul>
                    <li><a href="/">Accueil</a></li>
                    <li><a href="/a_propos/a_propos">&Agrave; propos de Comment fait-on ?</a></li>
     
                    <li><a href="/a_propos/cgu">CGU</a></li>
                    <!--<li><a href="/a_propos/devenir_redacteur">Devenez Rédacteur!</a></li>-->
                    <li>© FineMedia 2008</li>
                </ul>
                        </div>
        </div>
     
            <script src="http://www.google-analytics.com/urchin.js" type="text/javascript"></script>
     
        <script type="text/javascript">
        <!--
            _uacct = "UA-5096746-9";
            urchinTracker();
            _uff=0;
            _uacct = "UA-5096806-1";
            urchinTracker();
        //-->
            </script>
    </body>
    </html>
    Si quelqu'un peut m'aider il me tirera une grosse épine du pied.

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Personne?
    J'ai lu sur un autre fil qu'il était possible de passer directement les variables au serveur dans le script, mais comment faire précisément?
    Merci d'avance à tous, c'est vraiment le seul élément qu'il me manque pour compléter le robot...

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    La première ligne du form donne l'adresse à laquelle envoyer sa requête (l'action) et sa forme (POST) ainsi que son encodage (multipart/form-data), les champs qui suivent donne les noms des paramètres et les valeurs acceptable pour les champs de type "choix multiples". A partir de là il te suffit d'utiliser LWP, et par exemple HTTP::Request::Common, jette un coup d'oeil au cookbook.

    --
    Jedaï

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Merci
    Merci pour ces indications, je vais jeter un oeil. A bientôt et merci encore.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Alors concrètement, voilà ce que j'obtiens pour le premier formulaire (une fois connecté au site):
    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
     use strict;
        use LWP::UserAgent;
    	use HTTP::Request::Common;
    my $url = 'http://www.commentfaiton.com/fiche/add';
    my $url2= 'http://www.commentfaiton.com/fiche/categorize';
    my $url3= 'http://www.commentfaiton.com/fiche/fiche/lastStep';
    my $res = $ua->request(
    POST $url,
    Content_Type => 'form-data',
            Content      => [
                title    => $title,
                intro => $intro,
                requiers => $requiers,
    			tips => tips,
    			warnings => $warnings,
    			text0 => $text0,
    			text1 => $text1,
    			text2 => $text2,
     
            ]
        );
    les variables sont récupérées depuis des fichiers textes, avec ça pas de pb, ni avec la connexion au site. En revanche, pour le deuxième formulaire (dernier morceau de code de mon premier post), je ne vois pas bien comment faire (je débute totalement avec ce module et avec perl en général, il ne faut pas m'en vouloir: c'est super intéressant comme langage mais il me faudrait un exemple similaire pour que je puisse m'en sortir, si possible).
    Merci d'avance.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Je rectifie/précise:
    La seule partie qui me pose problème est la dernière étape, j'aurais besoin d'un coup de main pour identifier les variables à transmettre dans le script, j'ai l'impression qu'il me manque quelque chose.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Chose faite. Il me reste cependant -je viens de m'en apercevoir- à poster avec la bonne option, j'ai le choix entre trois:

    /fiche/lastStep/27687?opt=brouillon
    /fiche/lastStep/27687?opt=continue
    etc
    Comment dire à mon script d'utiliser la deuxième option?

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Corrections
    Me revoilà. Voici mon script actuel. Il fonctionne comme prévu lorsqu'un seul fichier est présent dans le répertoire cible, mais il n'arrive plus à rien (aucune erreur pourtant) lorsqu'il y en a plus...

    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    #!/usr/bin/perl -w
    use strict;
    my $urlcomp = "";
    use LWP::UserAgent;
    use HTTP::Request::Common;
    use WWW::Mechanize;
    my $m = WWW::Mechanize->new(autocheck => 1);
    $m->cookie_jar(HTTP::Cookies->new);
    my $URL = 'http://commentfaiton.com';
    my $donnees='';
    my $donneess='';
    my $suppr = "rm resultat.txt";
    my $URL2 = 'http://commentfaiton.com/fiche/editer/';
    my $ua = LWP::UserAgent->new;
    $ua->agent("Mozilla/8.0");
    my $chemin = "/chemin/vers/Documents/articles/test/";
    my $url = 'http://commentfaiton.com/';
    my $url2 = 'http://commentfaiton.com/fiche/add';
    my $urlpost1='http://commentfaiton.com/fiche/lastStep?opt=continue';#add?opt=continue';
    my $content;
    my $paragraphe;
    my @paragraphe;
    my $file;
    my @file;
    $m->agent_alias("Linux Mozilla");
    	$m->get($URL);
    	die 'Échec de connexion : '.$m->res->status_line() unless $m->success();
    	# remplissage et validation
    	$m->form_number('2');
    	$m->set_fields(
    	login => 'monuser', 
    	password => 'monpass'
    	);
    	$m->submit();
     
    		die 'Échec de validation du formulaire : ' . $m->res()->status_line()
    			unless $m->success();
    my $res = $m->post( $url,
            Content_Type => 'form-data',
            Content => [
                login    => 'monlogin',
                password => 'monpass'
            ],
        ) or die 'connexion impossible';
     
    opendir(REP,$chemin) or die "Ce repertoire ne semble pas exister.";
    while($file=readdir(REP))
    	{
    		push (@file,$file) unless $file =~ /^\.\.?$/;
    	}
    		closedir(REP);
     
    #pour chaque fichier récupéré:
    foreach $file (@file)
    {
    #on ouvre
    open FILE, "${chemin}$file" or die $!;
    {
      local $/; 
    #on stocke le contenu du fichier
      $content = <FILE>;
    };
    close(FILE);
    #on sépare par paragraphes
    @paragraphe = split(/\r?\n\r?\n/, $content);
    #on poste chaque paragraphe à sa place
    my $res = $m->request(
    POST $url2,
    Content_Type => 'form-data',
            Content      => [
                title    => $paragraphe[0],
                intro => $paragraphe[1],
                requiers => $paragraphe[2],
    			tips => $paragraphe[6],
    			warnings => $paragraphe[7],
    			text0 => $paragraphe[3],
    			text1 => $paragraphe[4],
    			text2 => $paragraphe[5],
           ]
       );
    	#on stocke temporairement la réponse dans un fichier texte
    	$donnees=$res->decoded_content;
    		open F_ECRIRE,">>resultat.txt" or die "E/S : $!\n";
     		print F_ECRIRE "$donnees";
      		open (FICHIER,"resultat.txt" )
         		or die "Echec ouverture de ce fichier : $!";
     
    while(<FICHIER>){
    #on en extrait le complément de l'URL, généré dynamiquement par le site
      $urlcomp = "$1\n" if /.*setAction\('(.*continue)/;
    }
      close FICHIER;
    #print $urlcomp;
    #on construit maintenant l'url absolue grâce au complément obtenu plus haut et on l'affiche à l'écran pour s'assurer de la forme de l'url
      $url2=$URL.$urlcomp;
      print $url2;
     # print $urlcomp;
     
    #on poste maintenant les variables manquantes via cette url:
    my $ress = $m->request(
    	POST $url2,
    Content_Type => 'form-data',
            Content      => [
                tagText    => 'linux, ubuntu, luzayi, zaya dio',
                base => $paragraphe[9],
                idCateg => '2432',
    			idLinks => '1?|:27631?',#$paragraphe[10],
    			qualificatif => 'utile',
    			theme => $paragraphe[11],
    			webLink0=> 'http://www.zaya-dio.com',
    			webLinkLegend0 =>'Spécialiste Linux, dépannage et maintenance info',
    			        ]
        );
    	#si tout s'est bien passé, on affiche OK et on supprime le fichier temporaire.
    	if ($ress->is_success) {
         print "OK!!!"; system($suppr);#print $res -> decoded_content;
      }else {
         print "Error: " . $ress->status_line . "\n";
      }
    }
    Mon problème est que pour un seul fichier je récupère correctement la variable et le post se fait normalement; mais à partir de 2 fichiers, plus rien!!! Je sèche, ai-je commis une erreur quelque part?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut
    Finalement, j'ai résolu le pb tout seul comme un grand.
    Merci à ceux qui m'ont apporté de l'aide.

    A bientôt.

Discussions similaires

  1. Bot irc en Perl
    Par MariusOnly dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2012, 13h42
  2. Aide pour Bot IRC Perl
    Par furious_mac dans le forum Langage
    Réponses: 3
    Dernier message: 06/09/2010, 18h24
  3. bot irc perl
    Par Mirelagord dans le forum Langage
    Réponses: 2
    Dernier message: 09/02/2009, 22h13
  4. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  5. [web] Cherche un conseil pour un livre perl-tk
    Par Anonymous dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 29/04/2002, 15h35

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