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.

Xpath de las siguientes propiedades

Quiero seleccionar la fecha y hora de la siguiente página web:
https://geoinfo.nmt.edu/nmtso/events/home.cfml

El xpath para el primero es /html/body/div/div[2]/main/div[2]/div[3]/table/tbody/tr[1]/td[1]. Así que me gustaría tener un xpath para cada fila, para poder extraerlo con Scrapy. ¿Hay alguna manera de hacer esto? Gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de seleccionar la fecha y hora de cada fila en la página web utilizando xpath. Puede utilizar xpath relativo para seleccionar la fecha y hora de cada fila en la tabla. Aquí hay un ejemplo de xpath relativo para seleccionar la fecha y hora de las primeras cinco filas:

    • Fila 1: ./td[1]
    • Fila 2: ./following-sibling::tr[1]/td[1]
    • Fila 3: ./following-sibling::tr[2]/td[1]
    • Fila 4: ./following-sibling::tr[3]/td[1]
    • Fila 5: ./following-sibling::tr[4]/td[1]

    En scrapy, puede utilizar el método response.xpath() para seleccionar estos elementos. Aquí hay un ejemplo de fragmento de código para extraer la fecha y hora de todas las filas en la tabla:

    import scrapy
    
    class MySpider(scrapy.Spider):
        name = "my_spider"
        start_urls = [
            "https://geoinfo.nmt.edu/nmtso/events/home.cfml"
        ]
    
        def parse(self, response):
            for row in response.xpath("//table/tbody/tr"):
                date_time = row.xpath("./td[1]/text()").get()
                yield {
                    "date_time": date_time
                }
    

    Este código extraerá la fecha y hora de cada fila en la tabla y generará un diccionario con los datos extraídos. También puede modificar el xpath para extraer otros datos de la tabla.

Comments are closed.