For the complete documentation index, see llms.txt. This page is also available as Markdown.

Ejemplos de instrucciones de análisis

Consulta ejemplos prácticos de instrucciones de parsing para Custom Parser: maneja objetos anidados, listas, errores y arrays de arrays.

El siguiente fragmento HTML se analiza usando instrucciones de análisis de ejemplo en las secciones siguientes.

HTML de ejemplo

<body>
    <div id="products">
        <div class="product" id="shoes">
            <div class="title">Shoes</div>
            <div class="price">223.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Super</li>
                </ul>
            </div>
        </div>
        <div class="product" id="pants">
            <div class="title">Pants</div>
            <div class="price">60.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Amazing</li>
                    <li class="description-item">Quality</li>
                </ul>
            </div>
        </div>
        <div class="product" id="socks">
            <div class="title">Calcetines</div>
            <div class="price">123.12</div>
            <div class="description">
                <ul>
                    <li class="description-item">Muy</li>
                    <li class="description-item">Bonitos</li>
                    <li class="description-item">Calcetines</li>
                </ul>
            </div>
        </div>
    </div>
</body>

Mínimo indispensable

Caso de uso: quieres extraer el texto de todos shoes description items.

Ejemplo 1. Selección de elementos de descripción de Shoes usando XPath.

El xpath la función encontrará un solo elemento y lo pondrá en una lista como una cadena:

La xpath comportamiento de la función se describe aquí.

Instrucciones de análisis anidadas

Caso de uso: quieres analizar toda la información relacionada con shoes. Además, el resultado analizado debe representar la estructura del documento del HTML proporcionado.

Estás apuntando a esta parte del HTML de ejemplo:

Y te gustaría que el resultado analizado tuviera la siguiente estructura:

Las instrucciones de análisis se verían así.

Ejemplo 2. Las instrucciones de análisis se usan para analizar shoes información.

xpath_one funciona de forma similar a xpath, pero en lugar de devolver una lista de todas las coincidencias, devuelve el primer elemento coincidente.

En el ejemplo anterior, la shoes propiedad es la única propiedad definida en el ámbito de instrucciones más externo. La shoes propiedad contiene instrucciones de análisis anidadas.

El shoes el ámbito de instrucciones no tiene una canalización definida (_fns la propiedad falta). Esto significa que las canalizaciones definidas en title, price, y description los ámbitos usarán el documento en análisis como entrada de la canalización.

En el Ejemplo 2, puedes ver una repetición de //div[@id='shoes'] en expresiones XPath. La repetición se puede evitar definiendo una canalización en el shoes ámbito:

Ejemplo 3. Definición de una canalización en shoes las instrucciones del ámbito para evitar la repetición de la expresión XPath.

Al usar las instrucciones de análisis proporcionadas en el Ejemplo 3, Custom Parser hará lo siguiente:

  1. Empezar procesando shoes._fns la canalización, que generará el shoes elemento HTML;

  2. Tomar shoes._fns la salida de la canalización y usarla como entrada para las canalizaciones definidas en title, price, y description los ámbitos;

  3. Procesar title, price, y description las canalizaciones para producir los valores finales.

El resultado se verá igual que el resultado del Ejemplo 2:

La principal diferencia entre el Ejemplo 2 y el Ejemplo 3 es que en el Ejemplo 3, la canalización está definida en el shoes ámbito. Esta canalización adicional selecciona el elemento de shoes y lo pasa a otras canalizaciones encontradas más profundamente en la jerarquía de instrucciones.

Lista de objetos anidados

Caso de uso: Antes, querías analizar solo shoes información. Ahora quieres analizar la información de todos los productos en el HTML.

El HTML de ejemplo se usa de nuevo como el documento en análisis.

Si quieres que tu resultado analizado se vea así:

Las instrucciones de análisis se verían así:

Ejemplo 4. Analizar todos los productos encontrados en el documento HTML.

La estructura de la instrucción de análisis se parece a la del Ejemplo 3. Sin embargo, hay dos excepciones principales:

  1. xpath se usa en lugar de xpath_one en products._fns la canalización. products._fns la canalización ahora generará una lista de todos los elementos que coincidan con la expresión XPath proporcionada (una lista de elementos de producto).

  2. _items la propiedad reservada se usa para indicar que quieres formar una lista iterando por cada elemento de la salida de la products._fns canalización y pasando/procesando cada elemento de la lista por separado dentro del ámbito de la canalización.

Si _items la propiedad reservada no se usara en las instrucciones de análisis del Ejemplo 4, el resultado analizado se vería así:

Seleccionar el elemento N-ésimo de una lista

Esta sección demuestra la flexibilidad de las canalizaciones. El mismo problema se puede abordar de distintas formas.

Se pueden usar varias opciones para seleccionar el elemento N-ésimo de una lista de cualquier valor.

Caso de uso: quieres seleccionar el segundo precio del producto de la página.

El HTML de ejemplo se usa de nuevo como ejemplo. Tienes varias opciones para seleccionar el 2.º producto.

Opción 1

Puedes usar el selector XPath [] y definir la selección en la expresión XPath.

Ejemplo 5. Seleccionar el 2.º precio usando el selector [] de XPath.

Resultado:

Opción 2

También puedes usar la xpath función para encontrar todos los precios y canalizarlo a la función select_nth, que selecciona el elemento n-ésimo de la lista extraída de precios.

Ejemplo 6. Seleccionar el 2.º valor usando la función `select_nth`.

Resultado:

Opción 3

Puedes usar select_nth con cualquier tipo de lista, incluidas listas de elementos HTML:

Ejemplo 7. Selección de todos los elementos HTML de producto con class="product" ==> seleccionando el 2.º elemento de producto de la lista ==> extrayendo el texto del precio del elemento HTML de producto seleccionado.

Resultado:

Manejo de errores

Cuando se da el siguiente fragmento HTML:

Y se intenta analizarlo con las siguientes instrucciones de análisis:

Custom Parser devolverá un resultado analizado donde price y title se analizaron normalmente, pero el description falló al analizarse debido a que la convert_to_float función no pudo convertir cadena a float:

Por defecto, todos los errores se contabilizan como advertencias y se colocan dentro de la _warnings lista. Si quieres ignorar los errores al analizar un campo, puedes suprimir las advertencias/errores con "_on_error": "suppress" parámetro:

Lo que producirá el siguiente resultado:

Matriz de matrices

Custom Parser permite arrays N-dimensionales en los resultados analizados. Como ejemplo, usemos el siguiente fragmento HTML:

Supongamos que quieres analizar el documento para que el resultado sea una matriz 2D 3x3 de enteros:

Para analizar el HTML en el JSON anterior, puedes usar las siguientes instrucciones de análisis:

¿Te fue útil?