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

Renderizado de JS y control del navegador

Aprende cómo usar un parámetro render para definir instrucciones del navegador en Web Scraper API para que puedas extraer páginas dinámicas complejas.

Renderizado de JavaScript

Si la página que desea extraer requiere JavaScript para cargar dinámicamente todos los datos necesarios en el DOM, puede incluir un render parámetro en sus solicitudes en lugar de configurar y usar manualmente instrucciones personalizadas del navegador. Las solicitudes con este parámetro se renderizarán por completo y los datos se almacenarán en un archivo HTML o en una captura PNG, según el parámetro especificado.

HTML

Establezca el render parámetro para html para obtener la salida sin procesar de la página renderizada.

PNG (Captura de pantalla)

Establezca el render parámetro para png para obtener una captura de pantalla codificada en Base64 de la página renderizada.

Si desea extraer una imagen y descargarla, consulte esta sección.

Solicitar ejemplo

curl --user "user:pass" \
'https://realtime.oxylabs.io/v1/queries' \\
-H "Content-Type: application/json" \
-d '{"source": "universal", "url": "https://www.example.com", "render": "html"}'

Forzar el renderizado en páginas específicas

Para una extracción exitosa, algunos tipos de páginas de dominios específicos requieren renderizado debido a su contenido dinámico. Nuestro sistema aplica automáticamente el renderizado para estas páginas, incluso si el usuario no lo establece explícitamente.

Queremos que nuestros usuarios sean plenamente conscientes de esto al extraer las siguientes páginas:

Este enfoque ofrece la mejor experiencia posible de extracción, garantizando la precisión y fiabilidad de los datos de estas páginas exigentes.

Si desea desactivar el renderizado, puede hacerlo añadiendo el siguiente parámetro a sus solicitudes:

Instrucciones del navegador

Puede definir sus propias instrucciones del navegador que se ejecutan al renderizar JavaScript.

Uso

Para usar instrucciones del navegador, proporciona un conjunto de browser_instructions al crear un trabajo.

Supongamos que quieres buscar el término pizza boxes en un sitio web.

Un ejemplo de los parámetros del trabajo sería el siguiente:

Paso 1. Debes proporcionar el "render": "html" parámetro.

Paso 2. Las instrucciones del navegador deben describirse en el campo "browser_instructions" .

Las instrucciones de navegador de ejemplo anteriores especifican que el objetivo es introducir un término de búsqueda pizza boxes en un campo de búsqueda, hacer clic en el botón search y esperar 5 segundos a que cargue el contenido.

El resultado extraído debería verse así:

El HTML extraído debería verse así:

Obtener recursos del navegador

Proporcionamos una instrucción de navegador independiente para obtener recursos del navegador.

La función está definida aquí:

El uso del fetch_resource hará que el trabajo devuelva la primera aparición de un recurso Fetch/XHR que coincida con el formato proporcionado en lugar del HTML al que se dirige.

Supongamos que queremos apuntar a un recurso GraphQL que se obtiene al visitar una página de producto de forma orgánica en el navegador. Proporcionaremos la información del trabajo así:

Estas instrucciones darán como resultado algo así:

Lista de instrucciones de navegador compatibles

Argumentos generales

Todas las instrucciones definidas a continuación tienen un conjunto coherente de argumentos. Los argumentos son los siguientes.

escribir

  • Tipo: Enum["click", "input", "scroll", "scroll_to_bottom", "wait", "wait_for_element", "fetch_resource"]

  • Descripción: Tipo de instrucción del navegador.

timeout_s

  • Tipo: int

  • Descripción: Cuánto tiempo hasta que se omite la acción si no se completa a tiempo.

  • Restricciones: 0 < timeout_s <= 60

  • Valor predeterminado: 5

wait_time_s

  • Tipo: int

  • Descripción: Cuánto tiempo esperar antes de ejecutar la siguiente acción.

  • Restricciones: 0 < wait_time_s <= 60

  • Valor predeterminado: 0

on_error

  • Tipo: Enum["error", "skip"]

  • Descripción: Indicador de qué hacer con las instrucciones en caso de que esta instrucción falle:

    • "error": Detiene la ejecución de las instrucciones del navegador.

    • "skip": Continúa con la siguiente instrucción.

  • Valor predeterminado: "error"

Ejemplo con argumentos generales

Instrucciones

clic

  • Descripción: Hace clic en un elemento y espera una cantidad fija de segundos.

  • Args:

    • type: str = "click"

    • selector: dict

      • type: Enum["xpath", "css", "text"]

      • value: str

Ejemplo:

input

  • Descripción: Introduce texto en un elemento seleccionado.

  • Args:

    • type: str = "input"

    • selector: dict

      • type: Enum["xpath", "css", "text"]

      • value: str

    • value: str

Ejemplo:

scroll

  • Descripción: Desplaza una cantidad fija de píxeles.

  • Args:

    • type: str = "scroll"

    • x: int

    • y: int

Ejemplo:

scroll_to_bottom

  • Descripción: Desplaza hasta el final durante una cantidad fija de segundos.

  • Args:

    • type: str = "scroll_to_bottom"

Ejemplo:

esperar

  • Descripción: Espera una cantidad fija de segundos.

  • Args:

    • type: str = "wait"

Ejemplo:

wait_for_element

  • Descripción: Espera a que el elemento cargue durante una cantidad fija de segundos.

  • Args:

    • type: str = "wait_for_element"

    • selector: dict

      • type: Enum["xpath", "css", "text"]

      • value: str

Ejemplo:

fetch_resource

  • Descripción: Obtiene la primera ocurrencia de un recurso Fetch/XHR que coincida con el patrón establecido.

  • Args:

    • type: str = "fetch_resource"

    • filter: str(expresión RegEx)

    • on_error: Enum["error", "skip"]

Ejemplo:

Validación de instrucciones

Cualquier inconsistencia con respecto al formato de la instrucción resultará en un 400 código de estado y un mensaje de error correspondiente.

Por ejemplo, una carga útil como esta:

Dará como resultado:

Solución de problemas

Códigos de estado

Consulta nuestros códigos de respuesta descritos aquí. Los códigos de estado relacionados con la validación de instrucciones están documentados aquí.

Errores y advertencias

Si hay un error o una advertencia resultante de sus acciones de navegación, la encontrará en el resultado bajo las claves browser_instructions_error o browser_instructions_warnings. Por ejemplo, si ha enviado las siguientes instrucciones del navegador y el xpath esperado no se encuentra en la página, el resultado incluirá una advertencia.

browser_instructions:

Resultados:

Posibles errores y advertencias

Se produjo un error inesperado al convertir las instrucciones del navegador en acciones.

Se produjo un error inesperado al ejecutar {action.type} instrucciones del navegador.

Acción {action.type} agotó el tiempo de espera.

No se pudo encontrar el tipo de selector {selector.type} con el valor {selector.value} en la página.

Última actualización

¿Te fue útil?