Pages :
(reprise du message précédent)

Hum question bete... apres avoir changé la valeur dans le fichier.ini tu as bien redémarrer wamp ? (W vert a coté de l'heure, 'Restart All services')
Par contre je ne pensais pas que ça prendrait autant de temps :s ça commence à faire long 2 minutes :x

EDIT :
Est ce que tu peux rajouter ça $i=0; et ensuite echo "<br>; echo$i++; dans le code pour que cela ressemble à ça ? Ensuite j'aurai besoin que tu me decrive la vitesse d'apparition des nombres a chaque lignes ( moi c'est instantané mais je suis toujours sur les fichiers locaux..)

$i=0;
//on fait une boucle pour parcourir tous les liens_relatif 
foreach ($liens_relatif[1] as $lien_relatif) {
    //a chaque tour de boucle on construit un nouveau lien.
    $lien= htmlspecialchars_decode("http://tools.morningstar.fr/fr/".$lien_relatif);
    //var_dump($lien);   

echo "<br>";   
echo $i++;

Modifié par mathieu1004 (02 Dec 2015 - 23:46)
J'ai redémarré wamp et j'ai vérifié que c'est sur 360 et étrangement il persiste sur un blocage à 120.

Je suis pas très étonné pour le temps de la requête, quand j'ouvrais les liens manuellement avant ( bien c'est pas la même méthode d'action qu'on utilise ) les liens étais parfois assez long à s'ouvrir

Le pb ne vient pas de mon Ordi il a ce qu'il faut ..

Penses tu que ça puisse venir de chez eux le blocage automatique ?

Tu m'a déjà énormément aidé c'est aboutit, je voudrait pas monopoliser tout ton temps je vais chercher un peu sur Google pour essayer débloquer cette limite à 120 secondes.
je viens de lire ton EDIT je fais ça

c'est en tain de mouliner .. mais j'ai pas de liens qui se succèdent à l'écran

c'est bon et Il vient de finir il a réussi avec 50 liens, impeccable !! il a ajouté une liste au début

0
1
2
..
49

je tente avec 100 et puis après je pourrais les faire 100 par 100 ça ira assez vite

Il sature à 50, et me remet son blocage à 120 secondes, après 50 par 50 ça se fait bien pour moi c'est juste qques copier coller mais ça va relativement vite
Modifié par valentin1 (03 Dec 2015 - 00:06)
Il bloque systématiquement a 50 ?
Si c'est ça c'est peut être leur serveur qui nous jette parce qu'on fait trop de requêtes en trop peu de temps.

Après echo $i++; , rajoute sleep(1); ca devrait ralentir le traitement, mais il ira plus loin si c'est pour ca qu'il nous jette Smiley smile
Comme ca :

echo "<br>";   
echo $i++;
sleep(1);

Modifié par mathieu1004 (03 Dec 2015 - 00:34)
ça marche avec sleep(1) je suis monté à 100

Quand je repense au temps que je mettais à ouvrir tous les liens et tout visionner .. là j'ai quelque chose de performant !

Sincèrement bien joué

A demain
C'est cool.
Essaye de remplacer sleep(1) (=attendre une 1seconde) par usleep(100000); (= attendre 100 000 microseconde, soit 100ms.
Dans l'absolu il faudrait faire quelques tests pour voir jusqu’où tu peux descendre pour optimiser un peu le temps de traitement mais bon. Si 100ms ça marche c'est deja pas mal, ça fait 10 résultats par seconde, ca te ferait un traitement d'environ 2 ou 3 minutes, et dans le même temps ça permet de pas trop abuser de la puissance du serveur.

Il faudra faire une vrai sortie de résultat au lieu du var_dump mais je ne sais pas comment il faut te les organiser ( un genre de tableau a 2 colonnes et plein de lignes ? )
Slt Mathieu

Je note tes éléments pour la vitesse d'exécution, déjà en sleep(1) c'est pas méchant l'attente

Au niveau du résultat final ce serait un tableau avec

En colonne 1
Le nom de la société et avec le lien vers sa fiche morningsar

En colonne 2
Le Cours/Actif net

Sache qu'avec ça déjà je me débrouille bien, qqes "remplacer" sur excel c'est vite vu.

Je commence à exploiter tout ça, de plus le fait que ce soit automatisé ça empêche les erreurs de lecture.
Pour essayer de faire un truc complet du coup :

//on crée un tableau qui stockera les resultats
$results=array();

preg_match_all("#href=\"\.\./(stockreport/default\.aspx\?id=.*?)\"#", file_get_contents("source.html"), $liens_relatif);

//on fait une boucle pour parcourir tous les liens_relatif 
foreach ($liens_relatif[1] as $lien_relatif) {
    //On attend une petite durée pour ne pas flooder le serveur (et prendre le risque de se faire jeter..)
    usleep(300000);

    //a chaque tour de boucle on construit un nouveau lien.
    $lien= htmlspecialchars_decode("http://tools.morningstar.fr/fr/".$lien_relatif);

    //on essaye de récupérer la valeur
    preg_match_all("#Cours/Actif net</th><td>(.*?)</td>#", file_get_contents($lien), $valeur);
    //si il y a bien une valeur
    if(count($valeur[1])==1)
    {   //alors on récupère le nom de la société
        preg_match_all('#<div id="SnapshotTitle" class="clearfix"><h1><span class="securityName">(.*?)</span> <span class="securitySymbol">#', file_get_contents("$lien"), $nom_societe);
        

        //et on stock le triplet (nom,valeur, lien) dans notre tableau de resultat
        $results[]=array($nom_societe[1][0] , $valeur[1][0], $lien);
        
    }//sinon on ne fait rien, on passe donc au tour de boucle suivant
}
//on crée un petit tableau de résultat : En 1 : le nom de l'entreprise avec le lien vers la société, et en 2 la valeur obtenue
echo "<table border=1>";
foreach($results as $result)
{
    echo "<tr><td><a href='$result[2]'>$result[0]</a></td><td>$result[1]</td></tr>";
    
}
echo "</table>";

Voila j'espere que j'ai rien oublié Smiley lol
Modifié par mathieu1004 (03 Dec 2015 - 19:12)
Fonctionnel du premier coup,

je ne sais pas comment te remercier, j'ai même plus besoin d'Excel, j'imaginais pas un tel résultat.

De nombreuses heures seront gagnées avec ta réalisation, c'est efficace, propre, simple ..

Je ne sais pas combien ça m'aurait couté à faire développer, maintenant j'ai les clés en mains pour faire du bon boulot en bourse c'est plus que génial.

Ce qui m'aurait prit des jours peut se faire en une demi journée
Pages :