Ajuda Selenium - Python

  • Autor Autor cris147
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
cris147

cris147

1
Iota
Verificado
Verificación en dos pasos activada
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
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
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).
 
Voltar
Topo