HTML-Parsing in PHP: Vollständiger Leitfaden zu Bibliotheken und Werkzeugen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

HTML-Parsing in PHP: Überblick über Bibliotheken und Werkzeuge



HTML-Parsing ist eine der Kernaufgaben bei der Entwicklung von Webanwendungen, der Datenerfassung oder der Integration mit externen Diensten. PHP, als serverseitige Sprache, bietet sowohl integrierte Mittel als auch leistungsstarke Drittanbieter-Bibliotheken zur Extraktion von Informationen aus HTML-Dokumenten. In diesem Artikel betrachten wir drei Hauptansätze zum HTML-Parsing in PHP, ihre Möglichkeiten, Vorteile und Besonderheiten der Nutzung.



1. Integrierte Erweiterung DOMDocument



DOMDocument ist eine integrierte PHP-Erweiterung, die einen vollständigen Satz von Werkzeugen für die Arbeit mit HTML- und XML-Dokumenten bereitstellt. Sie basiert auf dem standardmäßigen DOM-Modell (Document Object Model) und ermöglicht nicht nur das Parsen, sondern auch das Ändern der Dokumentstruktur.



Hauptfunktionen:

  • Laden von HTML aus einem String oder einer Datei
  • Navigation im Elementbaum mit XPath
  • Ändern, Hinzufügen und Löschen von Knoten
  • Validierung und Normalisierung von HTML


Anwendungsbeispiel:

<?php// DOMDocument erstellen und HTML laden$dom = new DOMDocument();libxml_use_internal_errors(true); // Fehler für ungültiges HTML deaktivieren$dom->loadHTML('<html><body><div class="content">Hallo, Welt!</div></body></html>');libxml_clear_errors();

// XPath zur Suche nach Elementen verwenden$xpath = new DOMXPath($dom);$elements = $xpath->query("//div[@class='content']");

foreach ($elements as $element) { echo $element->nodeValue; // Gibt aus: Hallo, Welt!}?>


Vorteile: keine Installation zusätzlicher Bibliotheken erforderlich, hohe Leistung, vollständige Kontrolle über das Dokument.

Nachteile: komplexe Syntax für einfache Aufgaben, umständliche Arbeit mit ungültigem HTML (libxml-Konfiguration erforderlich).



2. Bibliothek Simple HTML DOM



Simple HTML DOM ist eine beliebte Drittanbieter-Bibliothek, die das HTML-Parsing erheblich vereinfacht. Sie bietet eine praktische jQuery-ähnliche Syntax zum Suchen und Extrahieren von Daten.



Installation:

composer require simplehtmldom/simplehtmldom


Anwendungsbeispiel:

<?phprequire_once 'vendor/autoload.php';

use simplehtmldom\\HtmlWeb;

// HTML von einer URL laden$client = new HtmlWeb();$html = $client->load('https://example.com');

// Alle Links suchen$links = $html->find('a');foreach ($links as $link) { echo $link->href . ' - ' . $link->plaintext . "";}

// Nach CSS-Klasse suchen$items = $html->find('.product-price');foreach ($items as $item) { echo $item->plaintext . "";}?>


Hauptmethoden:

  • find() — Suche nach Elementen mittels CSS-Selektor
  • getElementById() — Element nach ID abrufen
  • getElementsByTagName() — Elemente nach Tag abrufen
  • innertext und plaintext — Textinhalt abrufen


Vorteile: einfache und intuitive Syntax, gute Dokumentation, Unterstützung für CSS-Selektoren.

Nachteile: langsamer als das integrierte DOMDocument, lange nicht aktualisiert (letzte Version von 2019).



3. Symfony DomCrawler



DomCrawler ist eine Komponente des Symfony-Frameworks, die leistungsstarke Werkzeuge zur Navigation in HTML- und XML-Dokumenten bereitstellt. Sie wird aktiv gewartet und in modernen PHP-Projekten eingesetzt.



Installation:

composer require symfony/dom-crawler symfony/css-selector


Anwendungsbeispiel:

<?phprequire_once 'vendor/autoload.php';

use Symfony\\Component\\DomCrawler\\Crawler;

// Crawler erstellen und HTML laden$html = '<html><body><div class="article"><h2

Empfehlungen