In questo post viene descritto come estrarre i dati da una pagina HTML. Cio' mi e' stato richiesto perche' una ditta offre un servizio di pubblicazione dati (peraltro forniti con licenza Common Creative) in formato CSV solo a seguito di autenticazione mediante un Captcha impedendo di fatto il download automatico
I medesimi dati sono pero' pubblicati anche all'interno di una tabella di una pagina HTML piuttosto complessa. Per "catturare" i dati si puo' analizzare il Document Object Method HTML (DOM) mediante la libreria Simple HTML Dom (http://simplehtmldom.sourceforge.net/) che indicizza i tag e permette di creare per esempio degli array php a partire da tag table
una volta importata la pagina html (anche da un link web oltre che file) nell'esempio sottostante e' stata selezionata la seconda tabella presente nel codice (linea evidenziata in giallo). Il contenuto della tabella e' salvato nell'array rowData
--------------------------------------------------------
<?php
require('simple_html_dom.php');
$html = file_get_html('http://xxxxxxx');
$table = $html->find('table', 2);
$rowData = array();
foreach($table->find('tr') as $row) {
$flight = array();
foreach($row->find('td') as $cell) {
$flight[] = $cell->plaintext;
}
$rowData[] = $flight;
}
--------------------------------------------------------
La libreria funziona anche su pagine html non perfettamente formattate (per esempio con tag aperti e non chiusi)
Iscriviti a:
Commenti sul post (Atom)
Perche' investire su Unix
Un libro trovato nel libero scambio alla Coop su cio' che poteva essere e non e' stato...interessante la storia su Unix del primo c...
-
Per lo shield WiFly e' stata effettuata la patch descritta qui Per la connessione del lettore Rfid si usano i seguenti pin VCC ...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
Nessun commento:
Posta un commento