CAPSOLVER
Blog
Cómo utilizar ScrapeGraph AI para la extracción de datos web

Cómo usar ScrapeGraph AI para el raspado web

Logo of CapSolver

Adélia Cruz

Neural Network Developer

04-Sep-2024

Cómo usar ScrapeGraph AI para Web Scraping

¿Qué es ScrapeGraph AI?

ScrapeGraph AI es una librería de web scraping en Python que aprovecha los LLM y la lógica basada en grafos para construir canalizaciones de scraping para sitios web y documentos locales (incluidos XML, HTML, JSON, Markdown y más). ¡Simplemente especifica los datos que deseas extraer y la librería se encargará del resto!

La librería proporciona varias características:

  • Soporte para muchos LLM: GPT, Gemini, Groq, Azure, Hugging Face
  • Modelos locales: Ollama.
  • Soporte para proxy para manejar solicitudes detrás de proxies.

Requisitos previos

Antes de sumergirte en el uso de ScrapeGraph AI, asegúrate de tener instalado lo siguiente:

bash Copy
pip install scrapegraphai capsolver

playwright install

Introducción a ScrapeGraph AI

Aquí tienes un ejemplo básico de cómo usar ScrapeGraph AI con OpenAI para raspar una página web:

python Copy
import json
from scrapegraphai.graphs import SmartScraperGraph

# Define la configuración para la canalización de raspado
graph_config = {
    "llm": {
        "api_key": "YOUR_OPENAI_APIKEY",
        "model": "openai/gpt-4o-mini",
    },
    "verbose": True,
    "headless": False,
}

# Crea la instancia SmartScraperGraph
smart_scraper_graph = SmartScraperGraph(
    prompt="Enumérame todas las citas con su descripción",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# Ejecuta la canalización
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

Aquí tienes un ejemplo básico de cómo usar ScrapeGraph AI con LLM local (Ollama) para raspar una página web:

python Copy
import json
from scrapegraphai.graphs import SmartScraperGraph

# Define la configuración para la canalización de raspado
graph_config = {
    "llm": {
        "model": "ollama/llama3.1",
        "temperature": 0,
        "format": "json",  # Ollama necesita que se especifique explícitamente el formato
        # "base_url": "http://localhost:11434", # establece la URL de ollama arbitrariamente
    },
    "verbose": True,
    "headless": False
}

# Crea la instancia SmartScraperGraph
smart_scraper_graph = SmartScraperGraph(
    prompt="Enumérame todas las citas con su descripción",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# Ejecuta la canalización
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

Gestión de captchas con Capsolver y ScrapeGraph AI

En esta sección, exploraremos cómo integrar Capsolver con ScrapeGraph AI para eludir los captchas. Capsolver es un servicio externo que ayuda a resolver varios tipos de captchas, incluyendo ReCaptcha V2, que se utiliza comúnmente en los sitios web.

Demostraremos cómo resolver ReCaptcha V2 usando Capsolver y luego raspar el contenido de una página que requiere resolver el captcha primero.

Código de bonificación

Reclama tu Código de bonificación para las mejores soluciones de captcha; Capsolver: scrape. Después de canjearlo, obtendrás un bono adicional del 5% después de cada recarga, ilimitado

Ejemplo: Resolviendo ReCaptcha V2 con Capsolver y ScrapeGraph AI

python Copy
import capsolver
import os
import json
from scrapegraphai.graphs import SmartScraperGraph

# Considera 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", "Tu clave de API de Capsolver")
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)

# Define la configuración para la canalización de raspado
graph_config = {
    "llm": {
        "api_key": "YOUR_OPENAI_APIKEY",
        "model": "openai/gpt-4o-mini",
    },
    "verbose": True,
    "headless": False,
}

# Crea la instancia SmartScraperGraph
smart_scraper_graph = SmartScraperGraph(
    prompt="Encuentra la descripción de cada cita.",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# Ejecuta la canalización
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

Conclusión

Con ScrapeGraph AI, puedes raspar sitios web de forma eficiente mientras gestionas las complejidades de los proxies y los captchas. Combinarlo con Capsolver te permite eludir los desafíos de ReCaptcha V2 sin problemas, lo que te permite acceder a contenido que de otra manera sería difícil de raspar.

No dudes en ampliar este script para adaptarlo a tus necesidades de raspado y experimentar con las funciones adicionales que ofrece ScrapeGraph AI. Asegúrate siempre de que tus actividades de raspado respetan 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