Forzar tiempos de espera
Algunas páginas mantienen unos pocos nodos DOM cargando durante bastante tiempo después de que el contenido principal esté listo. Utiliza el parámetro timeout para limitar el tiempo total de renderizado. La API devuelve el HTML que tenga disponible cuando salte el temporizador, o un 422 con un error explicativo si no se ha recopilado nada utilizable.
Endpoint
Sección titulada «Endpoint» GET https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=<TARGET_URL>&render_js=1&timeout=<MILLISECONDS>
Parámetros
Sección titulada «Parámetros»| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
api_key | string | sí | Tu clave de la Web Scraping API |
url | string | sí | URL de destino a obtener |
timeout | integer | no | Tiempo máximo que el motor puede dedicar al renderizado, en milisegundos. Máximo 60000. |
render_js | integer | no | Establece 1 para renderizar JavaScript. |
Ejemplo de solicitud
Sección titulada «Ejemplo de solicitud»curl "https://scrape.shifter.io/v1?api_key=YOUR_API_KEY&url=https%3A%2F%2Fhttpbin.org%2Fget&render_js=1&timeout=200"import requests
r = requests.get("https://scrape.shifter.io/v1", params={ "api_key": "YOUR_API_KEY", "url": "https://httpbin.org/get", "render_js": 1, "timeout": 200,})print(r.json())import fetch from 'node-fetch';
const url = 'https://scrape.shifter.io/v1?' + new URLSearchParams({ api_key: 'YOUR_API_KEY', url: 'https://httpbin.org/get', render_js: '1', timeout: '200',});const res = await fetch(url);console.log(await res.json());Ejemplo de respuesta
Sección titulada «Ejemplo de respuesta»{ "status": "Failure", "status_code": 422, "created_at": "2022-04-26T11:57:23.242Z", "processed_at": "2022-04-26T11:57:23.739Z", "time_taken": { "total": 0.701, "scraping": 0.202, "setup_worker": 0.403 }, "error": "The target page took more than 0.2 seconds to load, the website might be down. Retry the request or increase the value of 'timeout' parameter.", "page_content": null}