Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Simple HTML DOM Parser gestisce HTML tramite PHP [GUIDA]

Se state programmando in PHP vi potrebbe capitare la necessità  di prelevare soltanto alcuni tag da una pagina predefinita, oppure riportare la stessa per intero in formato testuale e simili. Senza pensare minimamente di farvi ammazzare a cercare la corretta espressione regolare da applicare in questi casi, il parser open-source PHP Simple HTML DOM Parser fa esattamente quello che vi serve. Il Simple HTML DOM Parser è una libreria per questo linguaggio di programmazione lato server che permette di analizzare e manipolare HTML in modo semplice e intuitivo, simile alla manipolazione del DOM in JavaScript.

Di seguito alcuni esempi di uso, e l’indirizzo web da cui scaricare la libreria.

Dove scaricare Simple HTML DOM Parser

  1. Scarica la libreria dal sito ufficiale: https://sourceforge.net/projects/simplehtmldom/files/ (la prima volta clicca su I accept, poi su Download Latest Version).
  2. Estrai il contenuto dell’archivio ZIP nella directory del tuo progetto.

Premessa: cos’è il DOM

Il DOM, acronimo di Document Object Model, è un’interfaccia standardizzata per la rappresentazione e l’interazione con documenti HTML, XML e XHTML. In poche parole, il DOM rappresenta la struttura di un documento web come una gerarchia di oggetti che possono essere manipolati con scripting, come JavaScript ma anche PHP e altri linguaggi. Il DOM rappresenta la struttura di un documento web come un albero gerarchico di nodi, dove ogni nodo rappresenta un elemento, un attributo o un testo all’interno del documento: ogni nodo può avere zero o più nodi figlio e un solo nodo padre.

Il DOM definisce diversi tipi di nodi per rappresentare diverse parti di un documento web, tra cui:

  • Elementi: Rappresentano le tag HTML come <div>, <p>, <a>, ecc.
  • Attributi: Rappresentano gli attributi di un elemento HTML come id, class, src, ecc.
  • Testo: Rappresenta il testo all’interno di un elemento HTML.
  • Commenti: Rappresenta i commenti all’interno del codice HTML.

Il DOM fornisce un’interfaccia per accedere e manipolare i nodi di un documento web utilizzando linguaggi di scripting come JavaScript. Questo consente agli sviluppatori di aggiungere, rimuovere o modificare dinamicamente il contenuto, la struttura e lo stile di una pagina web.

Il DOM supporta l’aggiunta di eventi, come clic, hover, submit, ecc., agli elementi della pagina. Gli eventi consentono di rispondere alle azioni dell’utente e di eseguire azioni specifiche in risposta a tali eventi.

In sintesi, il DOM è un modello di programmazione che consente agli sviluppatori di manipolare dinamicamente il contenuto e la struttura di una pagina web attraverso lo scripting. È un concetto fondamentale nello sviluppo web e viene utilizzato ampiamente per creare interattività e dinamicità nelle applicazioni web moderne.

Come funziona Simple HTML DOM Parser

Un parser HTML è un componente software che analizza un documento HTML e ne estrae le informazioni strutturate. Ecco un esempio di come funziona utilizzando un semplice codice HTML.

Supponiamo di avere: il file esempio.html fatto così:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Esempio</title>
</head>
<body>
<h1>Benvenuto</h1>
<p>Questo è un esempio di parser HTML.</p>
<ul>
<li>Elemento 1</li>
<li>Elemento 2</li>
<li>Elemento 3</li>
</ul>
</body>
</html>

Questo script PHP utilizza il Simple HTML DOM Parser per caricare il documento HTML, estrarre il titolo della pagina, il testo dell’elemento h1 e i testi degli elementi della lista non ordinata, e quindi stamparli a schermo. Il parser analizza il codice HTML e consente di accedere facilmente ai diversi elementi e ai loro contenuti, facilitando l’estrazione delle informazioni desiderate. Qui c’è un parser HTML che utilizza PHP per estrarre alcune informazioni:

<?php
// Include il Simple HTML DOM Parser
include 'simple_html_dom.php';

// Carica il documento HTML
$html = file_get_html('esempio.html');

// Estrapola il title
$titolo = $html->find('title', 0)->plaintext;
echo "Titolo della pagina: $titolo<br>";

// Estrapola il testo dall'elemento h1
$titoloPrincipale = $html->find('h1', 0)->plaintext;
echo "Titolo principale: $titoloPrincipale<br>";

// Estrapola il testo di tutti gli elementi <li>
echo "Elementi della lista:<br>";
foreach($html->find('ul li') as $elemento) {
echo "- " . $elemento->plaintext . "<br>";
}

// Pulizia finale della memoria e conclusione dello script
$html->clear();
unset($html);
?>

Come integrarlo nel vostro codice

Come prima cosa in qualsiasi frammento di codice tu decida di includere un parser HTML, dovrai scrivere all’inizio:

include 'simple_html_dom.php';
Si tratta di un prodotto open source che permette di manipolare codice HTML in modo molto semplice, sulla falsariga degli esempi pronti all’uso che riporto di seguito (prelevati dal sito):
// Carica il documento HTML da una URL
$html = file_get_html('http://www.sitoweb.com');

// Trova tutti gli elementi <a> nel documento
foreach($html->find('a') as $element) {
echo $element->href . '<br>';
}

// Trova il titolo della pagina
echo $html->find('title', 0)->plaintext;

// Trova un elemento con un determinato ID
echo $html->find('#element-id', 0)->plaintext;

// Trova elementi con una determinata classe
foreach($html->find('.class-name') as $element) {
echo $element->plaintext . '<br>';
}

// Trova tutti gli elementi figlio di un elemento specifico
foreach($html->find('div#container > ul > li') as $element) {
echo $element->plaintext . '<br>';
}

// Trova gli elementi che corrispondono a un selettore CSS complesso

foreach($html->find('div#container ul li a[href^=http://]') as $element) {
echo $element->plaintext . '<br>';
}

// preleva direttamente il codice HTML, pronto ad essere “trattato”

 $html = file_get_html('http://www.google.com/')

// tutte le immagini con un semplice ciclo basato su una condizione sul DOM

 foreach($html->find('img') as $element)
 echo $element->src . '<br>';

// tutti i link, come sopra

 foreach($html->find('a') as $element)
 echo $element->href . '<br>';

// manipola il DOM inserendo un contenuto per un tag al post di un altro

 
 $html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');
 $html->find('div', 1)->class = 'bar';
 $html->find('div[id=hello]', 0)->innertext = 'foo';
 echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div> 

//permette di prelevare il codice HTML dalla pagina come testo semplice

     echo file_get_html('http://www.google.com/')->plaintext;

// crea DOM dall’URL

 $html = file_get_html('http://trovalost.it/');

// trova tutti i blocchi identificati dalla classe di un DIV e li stampa in output

$articles = [];

foreach($html->find('div.article') as $article) {
$item = [];
$item['title'] = $article->find('div.title', 0)->plaintext;
$item['intro'] = $article->find('div.intro', 0)->plaintext;
$item['details'] = $article->find('div.details', 0)->plaintext;
$articles[] = $item;
}

print_r($articles);

Posso usarlo in un progetto software commerciale?

Sì, puoi utilizzare il codice sopra in un progetto commerciale. Tuttavia, ci sono alcune considerazioni da tenere presente:

  1. Attribuzione: Se stai utilizzando una libreria di terze parti come Simple HTML DOM Parser, verifica le condizioni di utilizzo della libreria stessa. Molte librerie open-source richiedono l’attribuzione dell’autore originale e la conservazione delle informazioni sulle licenze. Assicurati di rispettare tali requisiti.
  2. Sicurezza: Quando si esegue l’analisi di HTML proveniente da fonti esterne, come pagine web, è importante prestare attenzione alla sicurezza. Assicurati di sanificare e validare qualsiasi input HTML per prevenire attacchi XSS (Cross-Site Scripting) o altri tipi di vulnerabilità.
  3. Leggi e Normative: Assicurati di rispettare tutte le leggi e le normative pertinenti riguardanti l’uso di dati web, in particolare per quanto riguarda il scraping di contenuti web.
  4. Manutenzione: Se stai utilizzando librerie di terze parti, assicurati di tenerle aggiornate. Le vulnerabilità di sicurezza o i cambiamenti nei formati HTML potrebbero richiedere aggiornamenti alla libreria.

In generale, il codice fornito è un esempio generico di utilizzo di un parser HTML e può essere utilizzato in un progetto commerciale con le dovute considerazioni sopra menzionate. Tuttavia, è importante valutare attentamente le esigenze specifiche del tuo progetto e assicurarti di rispettare tutte le normative applicabili.

👇 Da non perdere 👇



Trovalost esiste da 4475 giorni (12 anni), e contiene ad oggi 8204 articoli (circa 6.563.200 parole in tutto) e 15 servizi online gratuiti. – Leggi un altro articolo a caso
Non ha ancora votato nessuno.

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.