Navegar HTML en Python

El espacio de nombres Aspose.Html.Dom proporciona una API que representa e interactúa con cualquier documento HTML, XML o SVG y se basa completamente en la especificación WHATWG DOM compatible con muchos navegadores modernos.

Este artículo proporciona información sobre cómo extraer datos mediante programación de documentos HTML con Aspose.HTML for Python via .NET. Lo descubres:

  • cómo navegar por un documento HTML y realizar una inspección detallada de sus elementos utilizando la API de Python;
  • cómo navegar por el documento utilizando CSS Selector y XPath Query.

Navegar en HTML implica acceder y manipular elementos y sus relaciones dentro de un documento. Aspose.HTML for Python via .NET le permite navegar e inspeccionar HTML, lo que implica trabajar con el Modelo de objetos de documento (DOM) proporcionado por la biblioteca. La siguiente lista muestra la forma más sencilla de acceder a todos los elementos DOM:

  1. Modelo de objetos de documento (DOM). La estructura DOM representa el documento HTML como un árbol de nodos. Cada nodo representa una parte del documento, como elementos, texto o comentarios.
  1. Acceso a elementos
  1. Navegando por el árbol DOM
  1. Elementos de manipulación

La Referencia de API proporciona una lista completa de clases y métodos en el espacio de nombres aspose.html.dom.

Consideraremos cómo el DOM representa un documento HTML en la memoria y cómo usar API para navegar a través de archivos HTML. Cuatro de las propiedades de clase Node: first_child, last_child, next_sibling y next_sibling, cada una proporciona una referencia en vivo a otro elemento con la relación definida con el elemento actual si el elemento relacionado existe.

Usando las propiedades mencionadas, puede navegar a través de un documento HTML de la siguiente manera:

 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!

Inspeccionando HTML

Aspose.HTML contiene una lista de métodos que se basan en las Especificaciones transversales de elementos. Puede realizar una inspección detallada del documento y sus elementos utilizando la API. El siguiente código Python demuestra cómo navegar y extraer elementos específicos y sus propiedades de un documento HTML usando Aspose.HTML for Python via .NET.

 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

El código Python proporcionado comienza definiendo la ruta al archivo HTML ubicado en el directorio “data”.

XPath Query

La alternativa a la Navegación HTML es la consulta XPath ( XML Path Language) que a menudo se denomina simplemente XPath. Es un lenguaje de consulta que se puede utilizar para consultar datos de documentos HTML. Se basa en una representación DOM del documento HTML y selecciona nodos según varios criterios. La sintaxis de las expresiones XPath es bastante simple y, lo que es más importante, es fácil de leer y de soportar.

El siguiente ejemplo muestra cómo utilizar consultas XPath dentro de la API de Python Aspose.HTML:

 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!

El método evaluate() en la biblioteca de Python Aspose.HTML le permite ejecutar consultas XPath en documentos HTML o XML, lo que permite la extracción y navegación de datos detallada. Toma una expresión XPath como parámetro principal, especifica la consulta que se ejecutará y devuelve un objeto XPathResult basado en el tipo de resultado definido.

Selector de CSS

Además de la navegación HTML y XPath, la API de Python Aspose.HTML admite la API de selección CSS. Esta API le permite formular patrones de búsqueda utilizando la sintaxis Selectores CSS para identificar y seleccionar elementos dentro de un documento HTML.

Por ejemplo, el método query_selector_all(selector) se puede utilizar para recorrer un documento HTML y recuperar elementos que coincidan con un selector CSS específico. Este método acepta una cadena de selector CSS como argumento y devuelve una NodeList que contiene todos los elementos que se ajustan a los criterios del selector. Con los selectores CSS, puede encontrar y manipular elementos de manera eficiente en función de sus atributos, clases, ID y otros criterios, lo que la convierte en una herramienta versátil para tareas de análisis de documentos tanto simples como complejas.

 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!

Conclusión

La biblioteca Aspose.HTML for Python via .NET ofrece un sólido conjunto de herramientas para trabajar con documentos HTML, XML y SVG, adhiriéndose a la especificación WHATWG DOM ampliamente admitida de los navegadores modernos. Utilizando la clase HTMLDocument y sus diversas propiedades y métodos de navegación, puede interactuar y manipular eficazmente el contenido HTML, evitando las complejidades de la extracción manual de datos y centrándose en aspectos más estratégicos de sus proyectos.

Aspose.HTML ofrece Aplicaciones web HTML gratuitas en línea que son una colección en línea de convertidores, fusiones, herramientas de SEO, generadores de código HTML, herramientas de URL, comprobaciones de accesibilidad web y más. Las aplicaciones funcionan en cualquier sistema operativo con un navegador web y no requieren ninguna instalación de software adicional. Utilice nuestra colección de aplicaciones web HTML para realizar sus asuntos diarios y hacer que su flujo de trabajo sea fluido.

Texto “Aplicaciones web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.