HTML in Python navigieren

HTML-Navigation

Der Aspose.Html.Dom Namespace bietet eine API, die beliebige HTML-, XML- oder SVG-Dokumente darstellt und mit ihnen interagiert. Er basiert vollständig auf der WHATWG DOM Spezifikation, die von vielen modernen Browsern unterstützt wird.

In diesem Artikel erfahren Sie, wie Sie mit Aspose.HTML for Python via .NET programmatisch Daten aus HTML-Dokumenten extrahieren können. Sie erfahren es:

  • wie man durch ein HTML-Dokument navigiert und seine Elemente mit Hilfe der Python-API detailliert untersucht;
  • wie man mit dem CSS-Selektor und der XPath-Abfrage durch das Dokument navigiert.

Die Navigation in HTML beinhaltet den Zugriff auf und die Bearbeitung von Elementen und deren Beziehungen innerhalb eines Dokuments. Aspose.HTML for Python via .NET ermöglicht es Ihnen, in HTML zu navigieren und es zu inspizieren, was die Arbeit mit dem von der Bibliothek bereitgestellten Document Object Model (DOM) beinhaltet. Die folgende Auflistung zeigt den einfachsten Weg, um auf alle DOM-Elemente zuzugreifen:

  1. Document Object Model (DOM) . Die DOM-Struktur stellt das HTML-Dokument als einen Baum von Knoten dar. Jeder Knoten stellt einen Teil des Dokuments dar, z. B. Elemente, Text oder Kommentare.
  1. Accessing Elements
  1. Navigieren im DOM-Baum
  1. Manipulation von Elementen

Die API-Referenzquelle enthält eine umfassende Liste der Klassen und Methoden im Namensraum “aspose.html.dom”.

Wir betrachten, wie das DOM ein HTML-Dokument im Speicher darstellt und wie man die API für die Navigation durch HTML-Dateien verwendet. Vier der Eigenschaften der Klasse Node – first_child, last_child, next_sibling und next_sibling – liefern jeweils einen Live-Verweis auf ein anderes Element mit der definierten Beziehung zum aktuellen Element, wenn das entsprechende Element existiert.

Mit Hilfe der genannten Eigenschaften können Sie durch ein HTML-Dokument wie folgt navigieren:

 1# Navigate the HTML DOM in Python
 2
 3import aspose.html as ah
 4
 5# Define the HTML content
 6html_code = "<span>Hello,</span> <span>World!</span>"
 7
 8# Navigate between sibling nodes
 9with ah.HTMLDocument(html_code, ".") as document:
10    element = document.body.first_child
11    print(element.text_content)
12
13    element = element.next_sibling
14    print(element.text_content)
15
16    element = element.next_sibling
17    print(element.text_content)

Prüfen von HTML

Aspose.HTML enthält eine Liste von Methoden, die auf den Element Traversal Specifications beruhen. Mit Hilfe der API können Sie eine detaillierte Inspektion des Dokuments und seiner Elemente durchführen. Der folgende Python-Code zeigt, wie man mit Aspose.HTML for Python via .NET in einem HTML-Dokument navigiert und bestimmte Elemente und deren Eigenschaften extrahiert.

 1# Navigate and inspect an HTML document in Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Prepare the input path
 7data_dir = "data"
 8document_path = os.path.join(data_dir, "html_file.html")
 9
10# Navigate through the HTML element tree
11with ah.HTMLDocument(document_path) as document:
12    element = document.document_element
13    print(element.tag_name)
14
15    element = element.last_element_child
16    print(element.tag_name)
17
18    element = element.first_element_child
19    print(element.tag_name)
20    print(element.text_content)

Der mitgelieferte Python-Code beginnt mit der Angabe des Pfads zur HTML-Datei im Verzeichnis “data”.

XPath-Abfrage

Die Alternative zur HTML-Navigation ist die XPath-Abfrage ( XML Path Language), die oft einfach als XPath bezeichnet wird. Es handelt sich dabei um eine Abfragesprache, die zur Abfrage von Daten aus HTML-Dokumenten verwendet werden kann. Sie basiert auf einer DOM-Darstellung des HTML-Dokuments und wählt Knoten nach verschiedenen Kriterien aus. Die Syntax der XPath-Ausdrücke ist recht einfach, und was noch wichtiger ist, sie ist leicht zu lesen und zu unterstützen.

Das folgende Beispiel zeigt, wie XPath-Abfragen innerhalb der Aspose.HTML Python API verwendet werden können:

 1# Select HTML nodes with XPath in Python
 2
 3import aspose.html as ah
 4import aspose.html.dom.xpath as hxpath
 5
 6# Define the HTML content
 7html_code = """
 8    <div class='happy'>
 9        <div>
10            <span>Hello,</span>
11        </div>
12    </div>
13    <p class='happy'>
14        <span>World!</span>
15    </p>
16"""
17
18# Select <span> nodes inside elements with the happy class
19with ah.HTMLDocument(html_code, ".") as document:
20    result = document.evaluate(
21        "//*[@class='happy']//span",
22        document,
23        None,
24        hxpath.XPathResultType.ANY,
25        None
26    )
27
28    node = result.iterate_next()
29    while node is not None:
30        print(node.text_content)
31        node = result.iterate_next()

Die Methode evaluate() in der Aspose.HTML Python-Bibliothek ermöglicht die Ausführung von XPath-Abfragen auf HTML- oder XML-Dokumente, was eine detaillierte Datenextraktion und Navigation ermöglicht. Sie nimmt einen XPath-Ausdruck als primären Parameter an, der die auszuführende Abfrage angibt, und gibt ein “XPathResult”-Objekt zurück, das auf dem definierten Ergebnistyp basiert.

CSS-Selektor

Zusätzlich zur HTML-Navigation und XPath unterstützt die Aspose.HTML Python API die CSS Selector API. Mit dieser API können Sie Suchmuster unter Verwendung der CSS Selectors Syntax formulieren, um Elemente innerhalb eines HTML-Dokuments zu identifizieren und auszuwählen. So kann beispielsweise die Methode query_selector_all(selector) verwendet werden, um ein HTML-Dokument zu durchsuchen und Elemente abzurufen, die mit einem angegebenen CSS-Selektor übereinstimmen. Diese Methode akzeptiert eine CSS-Selektorzeichenkette als Argument und gibt eine NodeList zurück, die alle Elemente enthält, die den Selektorkriterien entsprechen. Mit CSS-Selektoren können Sie Elemente auf der Grundlage ihrer Attribute, Klassen, IDs und anderer Kriterien effizient finden und bearbeiten, was sie zu einem vielseitigen Werkzeug sowohl für einfache als auch für komplexe Aufgaben beim Parsen von Dokumenten macht. Diese Funktionalität ist besonders nützlich für Aufgaben wie Styling, Datenextraktion und Inhaltsmanipulation innerhalb eines HTML-Dokuments.

 1# Extract HTML nodes with CSS selectors in Python
 2
 3import aspose.html as ah
 4
 5# Define the HTML content
 6html_code = """
 7    <div class='happy'>
 8        <div>
 9            <span>Hello,</span>
10        </div>
11    </div>
12    <p class='happy'>
13        <span>World!</span>
14        <p>I use CSS Selector.</p>
15    </p>
16"""
17
18# Select <span> elements inside elements with the happy class
19with ah.HTMLDocument(html_code, ".") as document:
20    elements = document.query_selector_all(".happy span")
21
22    for element in elements:
23        print(element.text_content)

Schlussfolgerung

Die Aspose.HTML for Python via .NET-Bibliothek bietet eine Reihe von robusten Werkzeugen für die Arbeit mit HTML-, XML- und SVG-Dokumenten, die sich an die von modernen Browsern weithin unterstützte WHATWG DOM-Spezifikation halten. Mit der Klasse HTMLDocument und ihren verschiedenen Navigationseigenschaften und -methoden können Sie effektiv mit HTML-Inhalten interagieren und diese manipulieren. So vermeiden Sie die Komplexität der manuellen Datenextraktion und können sich auf strategischere Aspekte Ihrer Projekte konzentrieren.

Aspose.HTML bietet kostenlose Online- HTML-Webanwendungen, die eine Online-Sammlung von Konvertern, Zusammenschlüssen, SEO-Tools, HTML-Code-Generatoren, URL-Tools, Prüfungen der Barrierefreiheit und mehr sind. Die Anwendungen funktionieren auf allen Betriebssystemen mit einem Webbrowser und erfordern keine zusätzliche Softwareinstallation. Nutzen Sie unsere Sammlung von HTML-Webanwendungen, um Ihre täglichen Aufgaben zu erledigen und Ihre Arbeitsabläufe nahtlos zu gestalten!

Text “HTML-Webanwendungen”