Ayuda Selenium - Python

  • Autor Autor cris147
  • Fecha de inicio Fecha de inicio
cris147

cris147

1
Iota
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Hola, necesito un consejo/ayuda con python SELENIUM Necesito hacer un SCROLL de este elemento para que se carguen todas las tarjetas y así poder correr un scraper.

1662847015576.webp




¿Como podría hacer este scroll con selenium? He intentado de muchos modos pero lo logro conseguir lo que necesito.


este es el sitio web: https://tasando.cl/mapa/ventas?utf8=✓&sub_tipo=&region=&direccion=&commit=Buscar
 
Se le conoce como scroll infinito.

Python:
driver.get('https://tasando.cl/mapa/ventas?utf8=%E2%9C%93&sub_tipo=&region=&direccion=&commit=Buscar')

# Esperamos a que la página cargue
time.sleep(15)

altura_antes = 0
contenedor_elementos = driver.find_element(By.XPATH, '//div[@id="propiedades-list"]')
altura_despues = contenedor_elementos.size['height']

while altura_antes != altura_despues:
    # Nos movemos a la última propiedad
    propiedades = driver.find_elements(By.XPATH, '//div[@id="propiedades-list"]//div[@class="row imo-list-box"]')
    driver.execute_script("arguments[0].scrollIntoView();", propiedades[-1])

    # Esperarmos a que puedan cargar más elementos
    time.sleep(5)

    altura_antes = altura_despues

    # Obtenemos la nueva altura
    contenedor_elementos = driver.find_element(By.XPATH, '//div[@id="propiedades-list"]')
    altura_despues = contenedor_elementos.size['height']

# En el momento en que la altura del contenedor de las propiedades no cambie,
# significa que ya han cargado todos los elementos
# Listo, ya tienes todas las propiedades en la variable propiedades
# Ahora puedes obtener todos los datos que requieras
 
Se le conoce como scroll infinito.

Python:
driver.get('https://tasando.cl/mapa/ventas?utf8=%E2%9C%93&sub_tipo=&region=&direccion=&commit=Buscar')

# Esperamos a que la página cargue
time.sleep(15)

altura_antes = 0
contenedor_elementos = driver.find_element(By.XPATH, '//div[@id="propiedades-list"]')
altura_despues = contenedor_elementos.size['height']

while altura_antes != altura_despues:
    # Nos movemos a la última propiedad
    propiedades = driver.find_elements(By.XPATH, '//div[@id="propiedades-list"]//div[@class="row imo-list-box"]')
    driver.execute_script("arguments[0].scrollIntoView();", propiedades[-1])

    # Esperarmos a que puedan cargar más elementos
    time.sleep(5)

    altura_antes = altura_despues

    # Obtenemos la nueva altura
    contenedor_elementos = driver.find_element(By.XPATH, '//div[@id="propiedades-list"]')
    altura_despues = contenedor_elementos.size['height']

# En el momento en que la altura del contenedor de las propiedades no cambie,
# significa que ya han cargado todos los elementos
# Listo, ya tienes todas las propiedades en la variable propiedades
# Ahora puedes obtener todos los datos que requieras
Excelente! Muchas gracias, justamente lo que buscaba y necesitaba, estaba buscando ayuda en google pero encontraba cosas que no me servian, tu explicación ha sido excelente. Muchisimas gracias por tu tiempo. Me interesa aprender mucho más de las librerias de Selenium y BS4, tendrías alguna recomendacion de donde podría hacerlo?

Nuevamente muchas gracias por tu ayuda compañero.
 
Excelente! Muchas gracias, justamente lo que buscaba y necesitaba, estaba buscando ayuda en google pero encontraba cosas que no me servian, tu explicación ha sido excelente. Muchisimas gracias por tu tiempo. Me interesa aprender mucho más de las librerias de Selenium y BS4, tendrías alguna recomendacion de donde podría hacerlo?

Nuevamente muchas gracias por tu ayuda compañero.

No tengo recomendación que darte, solo toma un curso que te de las bases (YT, Udemy, Platzi, etc.)

Después del curso te vas a encontrar con problemas que no estaban en el temario, es hora de buscar.

¿Cómo buscar lo que necesitas?
  • Busca directamente en Google, si no aparece en español, busca en inglés
  • Si no das directamente con la respuesta, busca de forma indirecta, piensa en un proyecto que requiera de esa funcionalidad, después busca cómo hacer ese proyecto y lee la parte que te interesa.
Recuerda existe la documentación y stackoverflow.

PD:
Casi toda la información que vas a consultar está en inglés.
Puedes abrir un tema si te atoraste con algo, si tengo tiempo y me apetece responderé el tema (soy sincero).
 
Atrás
Arriba