es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Raspado web – Problemas con Cloudflare

Estoy intentando hacer scraping en https://www.carsireland.ie/search#q?%20scraper%20python=&toggle%5Bpoa%5D=false&page=1 (Había desarrollado un scraper, pero luego hicieron una remodelación total de su sitio web). El nuevo sitio web tiene un nuevo formato y utiliza Cloudflare para proporcionar la seguridad habitual. Tengo el siguiente código que devuelve un error 403, haciendo referencia en particular a este error:

  • “https://www.cloudflare.com/5xx-error-landing”

El código que he desarrollado hasta ahora es el siguiente:

from requests_html import HTMLSession

sesion = HTMLSession()

cabecera = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36",
    'referer':'https://www.google.com/'
}

# URL de la página de búsqueda
url = 'https://www.carsireland.ie/search#q?sortBy=vehicles_prod%2Fsort%2Fpoa%3Aasc%2Cupdated%3Adesc&page=1'

# Crear una sesión con la URL
respuesta = sesion.get(url, headers=cabecera)

# Renderizar la URL
datos = respuesta.html.render(sleep=1, timeout=20)

# Verificar la respuesta
print(respuesta.text)

Agradecería mucho cualquier ayuda que se pueda proporcionar para solucionar los problemas con CloudFlare que estoy teniendo.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El error 403 que estás recibiendo probablemente se deba a las medidas de seguridad de Cloudflare que se han implementado en la nueva versión del sitio web. Cloudflare está diseñado para proteger los sitios web del tráfico malicioso y de intentos de extracción de información.

    Para evitar la seguridad de Cloudflare, puedes intentar agregar el siguiente código a tu script:

    import cfscrape
    
    scraper = cfscrape.create_scraper()
    
    # URL de la página de búsqueda
    url = 'https://www.carsireland.ie/search#q?sortBy=vehicles_prod%2Fsort%2Fpoa%3Aasc%2Cupdated%3Adesc&page=1'
    
    # Crear una sesión con la URL
    r = scraper.get(url)
    
    # Renderizar la URL
    data = r.text
    
    # Verificar la respuesta
    print(data)
    

    La biblioteca cfscrape simula un navegador y hace más difícil que Cloudflare detecte que eres un raspador. Ten en cuenta que esta solución puede no funcionar en todos los casos, ya que hay diversas medidas de seguridad que los sitios web pueden implementar para evitar la extracción de datos. Siempre es mejor verificar los términos de servicio de un sitio web antes de intentar extraer cualquier dato.

Comments are closed.