[EasyPHP] Charger un tableau HTML dans MySQL

harry le ravi -  
 harry le ravi -
Bonjour à tous,
J'ai réussi à utiliser un script .vbs pour récuper un tableau sur un site web et de le charger dans un fichier html contenant seulement le tableau.
Ce tableau est structuré et cases du tableau contiennent toujours le même type de donnés.

J'aimerai maintenant charger les données du tableau HTML dans une base MySQL (EasyPHP) pour un traitement futur.

J'aimerai savoir comment je peux inserer les données dans la base MySQL de manière automatique et régulière juste après avoir récupéré le tableau du web.

Merci d'avance.
Configuration: Windows XP Internet Explorer 7.0

14 réponses

  1. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    Bonjour,

    en quel format est le tableau récuipéré ?
    une idée qui fonctionne :
    copier le tableau
    le coller dans excel
    le sauvegarde en csv
    l'importer dans le sgbd

    0
  2. harry le ravi
     
    Le fichier récupéré est un fichier HLMT contenant seulement un tableau de la forme:
    <HTML>
    <TABLE>
    .....
    </TABLE>
    </HTML>

    De plus, ce fichier qui est une page web au final peut être ouvert dans excel et chaque donnée d'une cellule du tableau HTML est transféré dans une cellule excel.
    Mais je ne pense pas que ce soit une méthode très simple pour l'automatisation de la tâche. Sauf peut être en .vbs car il me semble que ce language peuyt controller les applications MS.

    Mais si vous avez une solution qui permet d'utiliser directement le fichier HTML qui soit plus simple je suis prenneur.
    0
  3. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    Bonjour,

    si c'est un tableau d'un site qui n'est pas le vôtre je ne vois pas d'autre manipulation.
    si ce tableau est sur votre site, un scripy php peut créer un fichier csv et vous pouvez faire un téléchargement du fichier ainsi créer.

    sinon je ne vois pas
    0
  4. harry le ravi
     
    Je me suis peut être mal exprimé.

    Le tableau provient d'une page web d'un site qui n'est pas le mien.

    Avec un script .vbs je peux copier le code du tableau et créer un fichier HTML avec ce code et les balises <HTML> ce qui fait que j'ai ce tableau en local sur ma machine.

    Je suis interressé par votre solution scripty php pour créer un fichier csv à partir du fichier HTML à condition que je puisse par la suite importer les données du csv vers ma base MySQL.

    Si cela est possible et si cela ne vous gène pas, j'aimerai bien que vous me donniez la marche à suivre.

    Merci d'avance.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    $filename = "nom.csv";
    //ouvrir le fichier
    if (!$filecsv = fopen($filename, 'w')) {
    echo "Impossible d'ouvrir le fichier ($filename)<br>";
    exit;
    }
    $zone = $d."\n";

    // $d contient les champ séparés par virgule
    if (!fwrite($filecsv, $zone)) {
    echo "Erreur d'écriture dans le fichier ($filename)<br>";
    exit;
    }

    fclose($filecsv);
    0
  7. harry le ravi
     
    Où indique-t'on l'emplacement du fichier HTML dans ce script?

    Ce script peut-il etre lancé automatiquement?

    Merci.
    0
  8. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    je n'ai mis que la partie création du csv.
    il faut lire le fichier htm pour créer ligne / ligne le fichier csv

    il me vient une autre idée pour capturer la page : voir avec un aspirateur de site.

    mais dans toutça je ne vois pas bien comment tout automatiser
    0
  9. harry le ravi
     
    Pour la création du csv : ok
    Je ne vois pas très bien comment lire le fichier htm pour créer ligne / ligne le fichier csv . Je ne m'y connais pratiquement pas en PHP (je manque de pratique).
    Si vous pouvez m'indiquer comment lire le fichier HTML et comment insérer chaque contenu de cellule dans le fichier .csv

    Pour récupérer le tableau sur le web, je peux utiliser le planificateur de tache ou bien une boucle avec une fonction sleep pour la périodicité.

    Il me semble que l'on peut lancer des scripts PHP de manière périodique sur un serveur apache? A confirmer.

    Mais l'automatisation je peux m'en occuper plus tard.

    Voici mes checkpoints:
    - récupérer les données du web
    - insertion des données dans la base MySQL
    - traitement des données dans la base MySQL
    - automatisation des précédentes taches
    0
  10. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    Bonsoir,

    J'ai le même problème que vous : comment récupérer les données du web sans faire de manipulation.
    après on peut même envisager d'alimenter la base sql directement avec le script php, sans passer par les phases intermédiaires
    0
  11. harry le ravi
     
    Moi j''utilise ce script dans un fichier .vbs sous windows

    Set ie = CreateObject("InternetExplorer.Application") //objet de controle de IE
    ie.Navigate ("Site WEB") // navigation vers la page web souhaité (en mode invisible)
    do while ie.readystate<>4 // boucle tant que la page web n'est pas totalement chargée
    WScript.Sleep (100) // script au repos
    Loop // fin de boucle
    WScript.Sleep (1000) //script au repos
    Set fs = CreateObject("Scripting.FileSystemObject") //objet de controle systeme pour création de fichier
    Set fich = fs.OpenTextFile("Chemin d'access fichier HTML", 2, true) // ouverture du fichier
    fich.write "<HTML>"&ie.document.getElementsByTagName("table").item(1).outerhtml&"</HTML>"
    //enregistrement du contenu du deuxième élément HTML TABLE de la page web dans le fichier
    ie.Quit // fermeture de IE
    Set ie=Nothing

    Ce script fonctionne parfaitement rant que la structure HTML de la page reste inchangé.
    Si cela peut vous aider à récupérer des données d'une page web.
    0
  12. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    On recadre car on ne doit pas être en phase.
    tout ce que j'ai dit jusqu'à maintenant c'est avec une idée PhP.
    pas VBs.

    un script Php permet (mais vous le savez sans doute) de lire un fichier text, d'en manipuler les données et de mettre à jour une base de données.

    si ainsi le fichier lu contient par exemple val1 val2 et val3
    on peut facilement faire une requêtre sql
    insert into matable values('val1','val2','val3');

    0
  13. harry le ravi
     
    Ah pardon j'ai fait erreur.

    J'ai trouvé un site web assez utile et je pense qu'il y a ce que vous recherchez:
    http://jacxl.free.fr/cours_xl/cadres.html?ex=

    De mon coté, je pense qu'il est possible que je puisse modifier mon tableau HTML avec un script .vbs en retirant tout les espaces les balises <(/)TABLE> et <(/)TR> puis en remplacant les balises <(/)TD> par un espace.
    Le fichier text pourra être ainsi importé dans MySQL avec la commande
    insert into matable values('val1','val2','val3');

    Dites moi si je me rapproche du but.

    Autre question, peut-on mettre un script php en pause comme on peut le faire en vbs avec la commande WScript.Sleep (100)?

    Merci
    0
  14. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    bonsoir,
    à la place d'un espace mettez plutôt un caractère spécial, genre ; qui permettrait à php de faire une instruction explode
    0
  15. harry le ravi
     
    D'accord j'y penserai.

    Si jamais vous vous y connaissez en vbs, j'aimerai bien que vous me donniez les commandes pour supprimer des espaces dans fichier texte et remplacer les balises par un caractère spécial.

    J'ai fait la demande sur d'autre forums mais si jamais vous savez ca m'aiderai bien.

    Si jamais ce n'est pas le cas, je vous remerci pour votre aide et je vous souhaite une bonne continuation.
    0