Scrapping PHP : tabulation dans le csv

Résolu
nik029 Messages postés 315 Statut Membre -  
nik029 Messages postés 315 Statut Membre -
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 40050 Statut Modérateur 4 755
 
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 315 Statut Membre 44
 
Merci :)
0