Heim >Backend-Entwicklung >PHP-Tutorial >HTML -Parsing und Bildschirmkratzen mit der einfachen HTML -DOM -Bibliothek
Dieses Tutorial zeigt, wie HTML mit einem Open-Source-Parser effizient analysiert werden kann, wodurch die Komplexität regulärer Ausdrücke vermieden wird. Wir werden als Beispiel Umwelt -Tuts kratzen und Artikel Titel und Beschreibungen extrahieren. Dies ist für veranschaulichende Zwecke; Denken Sie daran, immer die Erlaubnis zu erhalten, bevor Sie eine Website abkratzen.
Beginnen Sie mit dem Installieren von Composer, einem PHP -Paket -Manager, um die Installation der Bibliothek zu vereinfachen.
Weitere Schritte sind unten detailliert.
umfassende Dokumentation finden Sie im offiziellen Github -Repository des Projekts.
---
Erstellen wir ein Skript zum Extrahieren von Artikeltiteln und -beschreibungen aus Envato -Tuts. Dies ist eine Demonstration und sollte nicht ohne Erlaubnis durchgeführt werden. Scraping kann Server überlasten.
Der Kerncode -Snippet:
<code class="language-php">use voku\helper\HtmlDomParser; require_once 'vendor/autoload.php'; $articles = []; getArticles('https://code.tutsplus.com/tutorials');</code>
Dies umfasst die erforderliche Bibliothek und initialisiert ein Array, um Artikeldaten zu speichern. Die getArticles
-Funktion (später definiert) betet und verarbeitet die Webseite.
Das Herz des Skripts extrahiert Artikelinformationen:
<code class="language-php">$items = $html->find('article'); foreach($items as $post) { $articles[] = [ /* title */ $post->findOne(".posts__post-title")->firstChild()->text(), /* description */ $post->findOne("posts__post-teaser")->text() ]; }</code>
Dies iteriert jedes Artikelelement (<article></article>
) und extrahiert den Titel und die Beschreibung mit CSS -Selektoren. Jeder $articles
Eintrag enthält ein Titel- und Beschreibungspaar. Zum Beispiel:
<code class="language-php">$articles[0][0] = "My Article Name Here"; $articles[0][1] = "This is my article description";</code>
Um mehrere Seiten umzugehen, identifizieren wir den "nächsten" Seiten -Link:
Die relevante HTML:
<code class="language-html"><a aria-label="next" class="pagination__button pagination__next-button" href="https://www.php.cn/link/a3cdf7cabc49ea4612b126ae2a30ecbf" rel="next"><i class="fa fa-angle-right"></i></a></code>
Das Skript findet diesen Link, extrahiert das Attribut href
und ruft rekursiv getArticles()
für nachfolgende Seiten auf. Entscheidend ist, dass das $html
-Objekt gelöscht wird, um die Erschöpfung der Speicher zu verhindern.
Parsen große Websites können zeitaufwändig sein. Dieses Tutorial bietet eine Grundlage für die HTML-Parsen mithilfe einer benutzerfreundlichen Bibliothek. Obwohl diese Bibliothek bequem ist, denken Sie daran, dass andere Methoden, wie beispielsweise die integrierte DOM-Manipulation von PHP mit XPath, existieren. Priorisieren Sie immer die Erlangung der Erlaubnis, bevor Sie eine Website abkratzen.
Das obige ist der detaillierte Inhalt vonHTML -Parsing und Bildschirmkratzen mit der einfachen HTML -DOM -Bibliothek. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!