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.

No se puede encontrar la clase utilizando el selector css scrapy.

Estoy probando para ver si puedo hacer scraping a un sitio web utilizando scrapy. Recibo respuesta del sitio, pero no puedo acceder a los elementos o datos que quiero. Mi selector es correcto y no creo que haya ningún error en los comandos, aunque soy principiante en scrapy.
Quiero obtener las etiquetas results-race-name con la clase results-race-name.
Lo ejecuté a través de la shell de scrapy.
En la shell, utilicé los siguientes comandos:

In [1]: fetch('https://greyhoundbet.racingpost.com/#results-list/r_date=2021-01-01/')

2022-01-07 15:08:58 [scrapy.core.engine] INFO: Spider opened
2022-01-07 15:09:01 [scrapy.core.engine] DEBUG: Crawled (404) <get https://greyhoundbet.racingpost.com/robots.txt=""> (referer: None)
2022-01-07 15:09:03 [scrapy.core.engine] DEBUG: Crawled (200) <get https://greyhoundbet.racingpost.com/#results-list/r_date="2021-01-01/"> (referer: None)

In [2]: view(response)
Out[2]: True

In [3]: response.css('.results-race-name').extract()
Out[3]: []

Nota: la función view(response) me muestra la salida hasta el logo de carga.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que scrapy está recibiendo la respuesta del sitio web, pero no se están extrayendo los elementos deseados con la clase “results-race-name”. Esto podría ser debido a múltiples razones, como que el elemento no esté presente en el código fuente HTML, problemas de sensibilidad de mayúsculas y minúsculas, o una sintaxis incorrecta en el selector.

    Una cosa que se puede hacer es revisar el código fuente HTML del sitio web para asegurarse de que el elemento deseado esté presente y tenga el nombre de clase correcto. Otra cosa a verificar es la sintaxis del selector CSS que se está utilizando. Se debe tener en cuenta que los selectores CSS distinguen entre mayúsculas y minúsculas, por lo que el nombre de la clase debe escribirse exactamente como está en el código fuente HTML.

    Si no hay errores en el selector y el elemento deseado está presente en el código fuente HTML, una posible razón para no poder extraer el elemento podría ser que el sitio web esté cargando el contenido de forma dinámica utilizando JavaScript o AJAX. En estos casos, es posible que la respuesta obtenida por scrapy no contenga los elementos deseados. Esto se puede confirmar revisando el contenido de la respuesta en busca de los elementos deseados utilizando la consola del navegador o un cliente HTTP como Postman.

    Si el sitio web está cargando contenido de forma dinámica, entonces el spider de scrapy podría necesitar utilizar una herramienta como Selenium o Splash para simular un navegador y esperar a que se cargue el contenido antes de extraer los elementos deseados.

Comments are closed.