Scrapping PHP : tabulation dans le csv

Résolu/Fermé
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - Modifié le 13 avril 2022 à 12:27
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 - 13 avril 2022 à 23:49
Bonjour,
Je souhaite scrapper les données de ce tableau sur ce site (https://www.carburants.org/prix-carburants/) en PHP. J'arrive à afficher les données mais elles n'apparaissent pas sous la forme de tableau (avec des tabulations, un header, etc.). Voyez vous ce que je pourrais modifier pour y arriver ?

<?php
    header('Content-Type: text/csv');
    require __DIR__ . "/vendor/autoload.php";
    use Goutte\Client;
 
    $client = new Client();
    $crawler = $client->request('GET', 'https://www.carburants.org/prix-carburants/');
    $out = fopen('donnees.csv', 'w');

    $crawler->filter('table tr')->each(function ($node) use ($out) {
        $nom = $node->text();
        fputcsv($out, [$nom]);
        
    });

    fclose($out);

?>


Les données telles qu'elles apparaissent dans le csv:
DépartementGasoilSP98SP95E10E85GPL
Ain (01)1,813€1,817€1,773€1,713€0,775€0,859€
Aisne (02)1,802€1,837€1,794€1,728€0,757€0,813€
Allier (03)1,816€1,837€1,784€1,732€0,758€0,809€
Alpes-de-Haute-Provence (04)1,824€1,840€1,812€1,736€0,791€0,799€
Hautes-Alpes (05)1,826€1,843€1,845€1,749€0,803€0,839€
Alpes-Maritimes (06)1,833€1,856€1,826€1,751€0,777€0,826€
(...)


Merci d'avance

A voir également:

2 réponses

jordane45 Messages postés 38309 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
13 avril 2022 à 18:40
Bonjour,
il suffit de regarder la documentation de la fonction pour voir que tu peux y ajouter des options .. comme le type de séparateur à utiliser
https://www.php.net/manual/fr/function.fputcsv.php

Par contre, il ne faut pas oublier qu'un CSV c'est juste un fichier texte dont les données sont séparées par ( de base une virgule, sauf si tu changes l'option ).
ça ne fera jamais un "tableau".

J'ai l'impression que tu t'attends à avoir un truc à la Excel ...
Dans ce cas, soit tu retravailles le csv dans ton logiciel de tableur ....

Soit tu fais une export dans le bon format directement..
Pour ça, il existe des librairies telles que phpSpreadSheet ou SpOut



1
nik029 Messages postés 281 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 13 avril 2022 44
13 avril 2022 à 23:49
Merci :)
0