Advertisement
noam76

ExtractData_Site_2-Array.php

May 28th, 2023
691
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.67 KB | None | 0 0
  1. <?php
  2. require '../vendor/autoload.php';
  3.  
  4. use GuzzleHttp\Client;
  5. use PhpOffice\PhpSpreadsheet\IOFactory;
  6. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  7. use PHPHtmlParser\Dom;
  8.  
  9. $idStrings = ['3853', '3861', '3855']; // Replace with your desired IDs
  10.  
  11. $client = new Client();
  12. $spreadsheet = new Spreadsheet();
  13. $sheet = $spreadsheet->getActiveSheet();
  14.  
  15. foreach ($idStrings as $id) {
  16.     $res = $client->request('GET', 'https://www.duurzaamloket.nl/SolKey_X014/Spec_Collector.php?ID='. $id .'&SchemeNo=0&Offset=1&SearchText=&PageCnt=500');
  17.  
  18.     $dom = new DOMDocument();
  19.     @$dom->loadHTML($res->getBody());
  20.  
  21.     $divs = $dom->getElementsByTagName('div');
  22.  
  23.     foreach ($divs as $div) {
  24.         $id = $div->getAttribute('id');
  25.         if ($id == 'tblTestResults_1') {
  26.             $tables = $div->getElementsByTagName('table');
  27.             foreach ($tables as $table) {
  28.                 $class = $table->getAttribute('class');
  29.                 if ($class == 'LicDetails') {
  30.                     $rows = $table->getElementsByTagName('tr');
  31.                     foreach ($rows as $row) {
  32.                         $cols = $row->getElementsByTagName('td');
  33.                         $rowValues = [];
  34.                         foreach ($cols as $col) {
  35.                             $rowValues[] = trim($col->nodeValue);
  36.                         }
  37.                         if (!empty($rowValues)) {
  38.                             $sheet->fromArray($rowValues, null, 'A' . $sheet->getHighestRow()+1);
  39.                         }
  40.                     }
  41.                 }
  42.             }
  43.         }
  44.     }
  45. }
  46.  
  47. $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
  48. $writer->save('tabledetails1.xlsx');
  49. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement