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 Nodefirst_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 using Python
 2
 3import aspose.html as ah
 4
 5# Prepare HTML code
 6html_code = "<span>Hello</span> <span>World!</span>"
 7
 8# Initialize a document from the prepared code
 9with ah.HTMLDocument(html_code, ".") as document:
10    # Get the reference to the first child (first SPAN) of the BODY
11    element = document.body.first_child
12    print(element.text_content)  # output: Hello,
13
14    # Get the reference to the whitespace between html elements
15    element = element.next_sibling
16    print(element.text_content)  # output: " "
17
18    # Get the reference to the second SPAN element
19    element = element.next_sibling
20    print(element.text_content)  # output: World!

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 HTML document using Python
 2
 3import os
 4import aspose.html as ah
 5
 6# Load a document from a file
 7data_dir = "data"  # Change this to your actual data directory
 8document_path = os.path.join(data_dir, "html_file.html")
 9with ah.HTMLDocument(document_path) as document:
10    # Get the html element of the document
11    element = document.document_element
12    print(element.tag_name)  # HTML
13
14    # Get the last element of the html element
15    element = element.last_element_child
16    print(element.tag_name)  # BODY
17
18    # Get the first element of the body element
19    element = element.first_element_child
20    print(element.tag_name)  # H1
21    print(element.text_content)  # Header 1

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# How to use XPath to select nodes using Python
 2
 3import aspose.html as ah
 4import aspose.html.dom.xpath as hxpath
 5
 6# Prepare HTML code
 7code = """
 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# Initialize a document based on the prepared code
19with ah.HTMLDocument(code, ".") as document:
20    # Here we evaluate the XPath expression where we select all child SPAN elements from elements whose 'class' attribute equals to 'happy'
21    result = document.evaluate("//*[@class='happy']//span",
22                               document,
23                               None,
24                               hxpath.XPathResultType.ANY,
25                               None)
26
27    # Iterate over the resulted nodes
28    node = result.iterate_next()
29    while node is not None:
30        print(node.text_content)
31        node = result.iterate_next()
32        # output: Hello,
33        # output: World!

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 nodes Using CSS selector using Python
 2
 3import aspose.html as ah
 4
 5# Prepare HTML code
 6code = """
 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# Initialize a document based on the prepared code
19with ah.HTMLDocument(code, ".") as document:
20    # Create a CSS Selector that extracts all elements whose "class" attribute equals "happy" and their child <span> elements
21    elements = document.query_selector_all(".happy span")
22
23# Iterate over the resulted list of elements
24    for element in elements:
25        print(element.text_content)
26        # output: Hello,
27        # output: World!

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”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.