Ricavare tutti gli url delle immagini da una pagina web con PHP
A proposito di web scraping...per un progetto (che a breve sarà online) avevo la necessità di recuperare le immagini presenti in una pagina web.
Dopo aver recuperato l'html il metodo migliore è creare un oggetto DOM e utilizzare XPath per ricavare i tags <img> presenti nella pagina.
Ecco il codice (semplificato e senza troppi controlli) per ricavare un aray di immagini direttamente da un url.
//array con gli url delle immagini trovate
$images_urls = [];
//ricavo l'html della pagina e creo un oggetto DOM
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML(file_get_contents('https://www.example.com'));
$xpath = new DOMXPath($doc);
//cerco tutti i tags img
$query = '//img';
$images = $xpath->query($query);
foreach ($images as $image) {
$images_urls[] = $image->getAttribute('src');
}
//ora in $images_urls abbiamo gli url delle immagini
Attenzione però: gli url ricavati potrebbero non essere validi.
Si potrebbero trovare infatti valori "data:...." o url relativi, che andreanno quindi controllati e corretti di conseguenza se si ha la necessità di scaricare le immagini trovate.

Commenti