Heim > Backend-Entwicklung > PHP-Tutorial > HTML -Parsing und Bildschirmkratzen mit der einfachen HTML -DOM -Bibliothek

HTML -Parsing und Bildschirmkratzen mit der einfachen HTML -DOM -Bibliothek

Lisa Kudrow
Freigeben: 2025-02-28 10:50:16
Original
788 Leute haben es durchsucht

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.


  1. Setup

Beginnen Sie mit dem Installieren von Composer, einem PHP -Paket -Manager, um die Installation der Bibliothek zu vereinfachen.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library

Weitere Schritte sind unten detailliert.

Dokumentation

umfassende Dokumentation finden Sie im offiziellen Github -Repository des Projekts.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library ---

  1. Praktische Anwendung: Scraping Envato Tuts

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.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library

Der Kerncode -Snippet:

use voku\helper\HtmlDomParser;
require_once 'vendor/autoload.php';

$articles = [];
getArticles('https://code.tutsplus.com/tutorials');
Nach dem Login kopieren

Dies umfasst die erforderliche Bibliothek und initialisiert ein Array, um Artikeldaten zu speichern. Die getArticles -Funktion (später definiert) betet und verarbeitet die Webseite.


  1. Datenextraktion

Das Herz des Skripts extrahiert Artikelinformationen:

$items = $html->find('article');
foreach($items as $post) {
    $articles[] = [
        /* title */ $post->findOne(".posts__post-title")->firstChild()->text(),
        /* description */ $post->findOne("posts__post-teaser")->text()
    ];
}
Nach dem Login kopieren

Dies iteriert jedes Artikelelement (<article>) und extrahiert den Titel und die Beschreibung mit CSS -Selektoren. Jeder $articles Eintrag enthält ein Titel- und Beschreibungspaar. Zum Beispiel:

$articles[0][0] = "My Article Name Here";
$articles[0][1] = "This is my article description";
Nach dem Login kopieren

  1. Handling Pagination

Um mehrere Seiten umzugehen, identifizieren wir den "nächsten" Seiten -Link:

HTML Parsing and Screen Scraping With the Simple HTML DOM Library HTML Parsing and Screen Scraping With the Simple HTML DOM Library HTML Parsing and Screen Scraping With the Simple HTML DOM Library

Die relevante 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>
Nach dem Login kopieren

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.


Schlussfolgerung

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage