Intentando usar Python y Selenium para desplazarse y raspar una página web de forma iterativa
Hace poco hice una pregunta (referenciada aquí:Raspado web Python (Beautiful Soup, Selenium y PhantomJS): solo raspado de parte de la página completa) que ayudó a identificar un problema que tuve al raspar todo el contenido de una página que se actualiza dinámicamente cuando uno se desplaza. Sin embargo, todavía no puedo cambiar mi código para apuntar al elemento correcto usando selenio y desplazarme hacia abajo de la página de forma iterativa. También descubrí que, cuando me desplazo manualmente hacia abajo en la página en cuestión, parte del contenido original cuando la página cargada desaparece mientras se actualiza el nuevo contenido. Por ejemplo, mira la imagen a continuación ...
He apuntado el contenedor con los datos que estoy tratando de raspar a continuación (resaltado en azul).
En primer lugar, tengo problemas para seleccionar el elemento correcto para desplazarme por la página, ya que nunca antes había tenido que hacer esto. Creo que tendría que usar selenio para apuntar al contenedor y luego usar la función "execute_script" para luego desplazarme hacia abajo en la página porque esta tabla está incrustada en el cuerpo de la página web. Sin embargo, parece que no puedo hacer que eso funcione.
scroll = driver.find_element_by_class_name("ag-body-viewport")
driver.execute_script("arguments[0].scrollIntoView();", scroll)
En segundo lugar, una vez que tenga la capacidad de desplazarme, tendré que desplazarme hacia abajo de a poco y raspar de forma iterativa. Lo que quiero decir es que, si miras en la imagen, verás un montón de etiquetas 'div' dentro del
Por ejemplo ... cuando se carga la página y le paso el html a Beautifulsoup. Puedo raspar las primeras 40 filas. Si me desplazo hacia abajo, digamos 40 filas, pasaré la fila 40 - 80 a beautifulsoup y las filas 1 - 40 ya no estarán disponibles ya que los datos se han actualizado dinámicamente ...
Para resumir, lo que quiero es poder raspar todo el contenido de la imagen provista y luego usar selenio para desplazar hacia abajo aproximadamente 40 filas, raspar las siguientes 40, luego desplazarse hacia abajo y raspar las siguientes 40 y así sucesivamente ... Cualquiera consejos sobre cómo hacer que el selenio se desplace en este contenedor integrado y cómo se desplazaría hacia abajo de forma iterativa para capturar todos los datos en el contenedor cuando se actualiza dinámicamente a medida que se desplaza. Cualquier ayuda adicional será muy apreciada.