
Lucas Mitchell
Automation Engineer

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.
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:
Antes de sumergirse en el uso de hrequests, asegúrese de tener instalado lo siguiente:
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.
Aquí hay un ejemplo básico de cómo usar hrequests para raspar una página web:
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.
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.
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},
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!
Guía de captcha para flujos de trabajo de datos aprobados: aprende tipos de desafíos, manejo de API, consistencia de proxy, reintentos y uso responsable.

API rápida para resolver CAPTCHA para automatización: comparar flujos de trabajo de tokens, desafíos soportados, verificaciones de latencia e integración de CapSolver responsable.
