Cómo usar Hrequests para Web Scraping

Lucas Mitchell
Automation Engineer
04-Sep-2024
Cómo usar Hrequests para el Scraping Web

El scraping web es una forma poderosa de extraer información de sitios web, pero a menudo es un desafío cuando los sitios implementan captchas, limitación de velocidad o proxies para bloquear scrapers no deseados. En esta guía, presentaremos hrequests, una biblioteca de scraping web de alto rendimiento, y lo guiaremos a través de su uso básico, incluido un demo para raspar un sitio usando hrequests en combinación con Capsolver para evitar los desafíos de ReCaptcha.
¿Qué es hrequests?
hrequests es una moderna biblioteca HTTP de Python diseñada para la velocidad y la flexibilidad, diseñada para manejar tareas de scraping web pesadas. Es esencialmente una versión mejorada de requests, con un mayor énfasis en el manejo de solicitudes con más control, especialmente en entornos que requieren manejo adicional de proxy o captcha.
La biblioteca proporciona varias características:
- Soporte de asyncio para realizar solicitudes concurrentes.
- Manejo de sesiones para reutilizar conexiones de manera eficiente.
- Soporte de proxy para manejar solicitudes detrás de proxies.
- Limitación de velocidad para evitar ser bloqueado.
- Soporte de resolución de captcha a través de servicios externos.
Requisitos previos
Antes de sumergirse en el uso de hrequests, asegúrese de tener instalado lo siguiente:
bash
pip install hrequests capsolver
Asegúrese de también tener una clave de API de Capsolver para resolver captchas si el sitio que está raspando lo requiere. Para obtener instrucciones de configuración detalladas, visite la página de GitHub de hrequests.
Empezando con hrequests
Aquí hay un ejemplo básico de cómo usar hrequests para raspar una página web:
python
import hrequests
# URL de la página web que queremos raspar
url = 'https://example.com'
# Hacer una solicitud GET simple
response = hrequests.get(url)
# Imprimir el código de estado
```python
print(f"Código de estado: {response.status_code}")
# Imprime el contenido de la página
print(f"Contenido de la página: {response.text}")
Este script básico realiza una solicitud GET a la URL dada e imprime el código de estado y el contenido de la página. Sin embargo, muchos sitios web son más complejos y requieren un manejo adicional, como la rotación de proxies, la suplantación de agentes de usuario o la resolución de captchas.
Manejo de captchas con Capsolver y hrequests
En esta sección, exploraremos cómo integrar Capsolver con hrequests para omitir los captchas. Capsolver es un servicio externo que ayuda a resolver varios tipos de captchas, incluido ReCaptcha V2, que se usa comúnmente en los sitios web.
Demostrarámos cómo resolver ReCaptcha V2 usando Capsolver y luego raspando el contenido de una página que requiere resolver el captcha primero.
Ejemplo: Resolviendo ReCaptcha V2 con Capsolver
python
import capsolver
import hrequests
import os
# Considere usar variables de entorno para información sensible
PROXY = os.getenv("PROXY", "http://username:password@host:port")
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Your Capsolver API Key")
PAGE_URL = os.getenv("PAGE_URL", "PAGE_URL")
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "PAGE_SITE_KEY")
def solve_recaptcha_v2(url, key):
solution = capsolver.solve({
"type": "ReCaptchaV2Task",
"websiteURL": url,
"websiteKey": key,
"proxy": PROXY
})
return solution['solution']['gRecaptchaResponse']
def main():
print("Resolviendo reCaptcha v2")
solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
print("Solución: ", solution)
# Ahora que hemos resuelto el captcha, podemos continuar con el raspado
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
# Enviando una solicitud GET con la solución de captcha
response = hrequests.get(
PAGE_URL,
headers=headers,
data={"g-recaptcha-response": solution},
python
proxies = {"http": PROXY, "https": PROXY}
)
# Verificando el estado e imprimiendo el contenido de la página
if response.status_code == 200:
print("¡Página recuperada correctamente!")
print(response.text)
else:
print(f"Error al recuperar la página. Código de estado: {response.status_code}")
if __name__ == "__main__":
main()
Siéntete libre de ampliar este script para satisfacer tus necesidades de raspado y experimentar con las características adicionales que ofrece hrequests. Siempre asegúrate de que tus actividades de raspado respeten los términos de servicio del sitio web y las directrices legales.
¡Feliz raspado!
Aviso de Cumplimiento: La información proporcionada en este blog es solo para fines informativos. CapSolver se compromete a cumplir con todas las leyes y regulaciones aplicables. El uso de la red de CapSolver para actividades ilegales, fraudulentas o abusivas está estrictamente prohibido y será investigado. Nuestras soluciones para la resolución de captcha mejoran la experiencia del usuario mientras garantizan un 100% de cumplimiento al ayudar a resolver las dificultades de captcha durante el rastreo de datos públicos. Fomentamos el uso responsable de nuestros servicios. Para obtener más información, visite nuestros Términos de Servicio y Política de Privacidad.
Máse

Cómo resolver captchas al realizar scraping web con Scrapling y CapSolver
Scrapling + CapSolver permite el scraping automatizado con ReCaptcha v2/v3 y bypass de Cloudflare Turnstile.

Ethan Collins
05-Dec-2025

Cambiar el Agente de Usuario en Selenium | Pasos y Mejores Prácticas
Cambiar el Agente de Usuario en Selenium es un paso crucial para muchas tareas de scraping web. Ayuda a disfrazar el script de automatización como un navegador regular...

Adélia Cruz
05-Dec-2025

Cómo identificar si `action` es necesario para resolver Cloudflare Turnstile usando la extensión de CapSolver
Aprende a identificar la acción para resolver eficazmente el captcha de Cloudflare Turnstile. Sigue nuestra guía paso a paso sobre cómo usar las herramientas y técnicas de Capsolver.

Adélia Cruz
05-Dec-2025

Descubre el Poder de 9Proxy: Una Revisión Completa
En este artículo, te mostraremos qué es 9proxy y los servicios que ofrecen.

Emma Foster
04-Dec-2025

Raspado de web con Selenium y Python | Resolver Captcha al realizar el raspado de web
En este artículo te familiarizarás con el web scraping usando Selenium y Python, y aprenderás a resolver el Captcha involucrado en el proceso para una extracción de datos eficiente.

Rajinder Singh
04-Dec-2025

Mejora con el tablero de CapSolver 3.0!
CapSolver Dashboard 3.0 ha sido recientemente actualizado con una interacción mejorada y una serie de nuevas funciones.

Ethan Collins
04-Dec-2025

