[PHP] web-scraping

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti ho un piccolo problema e spero possiate essermi di aiuto
Devo estrarre una data da un sito come da foto.
Alla fine la data che è presente sul sito (14 marzo 2019) devo trasformarla in 20190314 (2019 -> anno ,03 -> mese, 14 -> giorno)

sto provando con questo codice però non va
PHP:
function scrape($testo,$txt_inizio,$txt_fine,$offset)
{
$inizio = strpos($testo,$txt_inizio)+13;
$fine = strpos($testo,$txt_fine,$inizio);
$darestituire = substr($testo,$inizio,$fine-$inizio+$offset);
return $darestituire;
}
   
$pagina=file_get_contents('https://www.adm.gov.it/portale/monopoli/tabacchi/prezzi/prezzi_pubblico');  

$estrai=scrape($pagina,'aggiornati al','</strong>',0);  
   
$con_spazi = str_replace("nbsp"," ",$estrai);
$arr = explode(" ", $con_spazi);

$mesi = array('gennaio'=>'01','febbraio'=>'02','marzo'=>'03','aprile'=>'04','maggio'=>'05','giugno'=>'06','luglio'=>'07','agosto'=>'08','settembre'=>'09','ottobre'=>'10','novembre'=>'11','dicembre'=>'12'
);
   
$numero_mese = $mesi[$arr[1]];

$variazione = $arr[2].$numero_mese.$arr[2];

echo $variazione;
 

Allegati

  • Immagine.png
    Immagine.png
    73,5 KB · Visite: 381
Ultima modifica di un moderatore:
PHP:
function scrape($testo,$txt_inizio,$txt_fine,$offset)
{
$inizio = strpos($testo,$txt_inizio)+strlen($txt_inizio);
$fine = strpos($testo,$txt_fine,$inizio);
$darestituire = substr($testo,$inizio,$fine-$inizio+$offset);
return $darestituire;
}
    
$pagina=file_get_contents('https://www.adm.gov.it/portale/monopoli/tabacchi/prezzi/prezzi_pubblico');   

$estrai=scrape($pagina,'aggiornati al','</strong>',0);   
$estrai = trim($estrai);

$con_spazi = str_replace("&nbsp;"," ",$estrai);

$arr = explode(" ", $con_spazi);

$mesi = array('gennaio'=>'01','febbraio'=>'02','marzo'=>'03','aprile'=>'04','maggio'=>'05','giugno'=>'06','luglio'=>'07','agosto'=>'08','settembre'=>'09','ottobre'=>'10','novembre'=>'11','dicembre'=>'12');
    
$numero_mese = $mesi[$arr[1]];

$variazione = $arr[2].$numero_mese.$arr[0];

echo $variazione;
 
  • Like
Reactions: solari77

Discussioni simili