fetch_url
Obtenga y analice páginas web con manejo automático de redirecciones, control de tiempo de espera y encabezados personalizados. Ideal para recuperar contenido HTML de cualquier URL de acceso público.
Casos de uso
Recuperación de contenido de páginas
Obtenga contenido HTML de cualquier página web para procesarlo o analizarlo después
Obtención de datos de API
Realice solicitudes GET a APIs REST y recupere respuestas JSON
Comprobaciones de estado
Monitoree la disponibilidad de sitios web y los tiempos de respuesta
Descargas simples
Descargue recursos estáticos, documentos o contenido de páginas
Endpoint
/api/v1/tools/fetch_urlParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | La URL a obtener (debe incluir el protocolo: http:// o https://) Example: https://example.com |
headers | object | Optional | - | Encabezados HTTP personalizados a incluir en la solicitud Example: {"Accept": "text/html", "User-Agent": "MyBot/1.0"} |
timeout | number | Optional | 10000 | Tiempo de espera de la solicitud en milisegundos (1000-30000) Example: 15000 |
follow_redirects | boolean | Optional | true | Si se deben seguir las redirecciones HTTP automáticamente Example: true |
user_agent | string | Optional | - | Encabezado User-Agent personalizado (reemplaza el predeterminado) Example: Mozilla/5.0 (compatible; CrawlBot/1.0) |
respect_robots | boolean | Optional | true | Respeta el robots.txt del sitio de destino. Con el valor `true`, una ruta que robots.txt no permita a `CrawlForge` se rechaza con un 403 antes de descargar nada y no se cobran credits. Póngalo en `false` solo para destinos con los que tenga su propio acuerdo: la respuesta incluye entonces una entrada `warnings` y la anulación queda registrada en su API key. Example: true |
Ejemplos de solicitud
cURL
curl -X POST https://crawlforge.dev/api/v1/tools/fetch_url \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"timeout": 15000,
"follow_redirects": true
}'TypeScript
const response = await fetch('https://crawlforge.dev/api/v1/tools/fetch_url', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://example.com',
timeout: 15000,
headers: {
'Accept': 'text/html',
'Accept-Language': 'en-US'
}
}),
});
const data = await response.json();
if (data.success) {
console.log('Page fetched:', data.data.url);
console.log('Status:', data.data.status);
console.log('Content length:', data.data.content_length);
console.log('Credits used:', data.credits_used);
console.log('Credits remaining:', data.credits_remaining);
} else {
console.error('Error:', data.error);
}Python
import requests
import os
response = requests.post(
'https://crawlforge.dev/api/v1/tools/fetch_url',
headers={
'X-API-Key': os.environ['CRAWLFORGE_API_KEY'],
'Content-Type': 'application/json',
},
json={
'url': 'https://example.com',
'timeout': 15000,
'headers': {
'Accept': 'text/html',
'Accept-Language': 'en-US'
}
}
)
data = response.json()
if data['success']:
print(f"Page fetched: {data['data']['url']}")
print(f"Status: {data['data']['status']}")
print(f"Content length: {data['data']['content_length']}")
print(f"Credits used: {data['credits_used']}")
print(f"Credits remaining: {data['credits_remaining']}")
else:
print(f"Error: {data['error']}")Ejemplo de respuesta
{ "success": true, "data": { "url": "https://example.com", "status": 200, "status_text": "OK", "headers": { "content-type": "text/html; charset=UTF-8", "content-length": "1256", "server": "nginx" }, "content": "Example Domain ......", "content_length": 1256, "content_type": "text/html; charset=UTF-8", "redirected": false, "final_url": "https://example.com", "response_time_ms": 245 }, "credits_used": 1, "credits_remaining": 999, "processing_time": 245}data.urlLa URL original que se solicitódata.statusCódigo de estado HTTP de la respuestadata.contentEl contenido HTML completo de la páginadata.content_lengthTamaño del contenido en bytesdata.final_urlURL final después de seguir las redireccionesdata.response_time_msCuánto tardó el destino en responder y entregar su cuerpo, en milisegundoscredits_usedCredits descontados por esta solicitud (1 por cada obtención)credits_remainingSu saldo restante de creditsManejo de errores
URL no válida (400 Bad Request)
El formato de la URL no es válido. Asegúrese de que incluya el protocolo (http:// o https://)
Error de tiempo de espera (500 Internal Server Error)
La solicitud tardó más que el tiempo de espera especificado. Intente aumentar el parámetro timeout.
Credits insuficientes (402 Payment Required)
Su cuenta no tiene suficientes credits. Compre más credits o mejore su plan.
Límite de tasa excedido (429 Too Many Requests)
Ha excedido el límite de tasa de su plan. Espere un momento o mejore su plan para obtener límites más altos.
Bloqueado por robots.txt (403 Forbidden)
El robots.txt del sitio de destino no permite esta ruta a CrawlForge. Establezca respect_robots: false para anularlo si tiene su propio acuerdo con el destino: la anulación queda registrada en su API key. La anulación no alcanza a un host incluido en la lista de exclusión permanente de CrawlForge, que se rechaza sea cual sea el valor de respect_robots.
Costo en credits
Plan Free: 1,000 credits de prueba por única vez = 1,000 solicitudes
Plan Hobby: 5,000 credits/mes = 5,000 solicitudes ($19/mo)
Plan Professional: 50,000 credits/mes = 50,000 solicitudes ($99/mo)
Plan Business: 250,000 credits/mes = 250,000 solicitudes ($399/mo)