Hacer webscraping scroll infinito es muy útil, ya que la mayoría de las páginas tienen JavaScript instaladas y ahora está muy de moda quitar la paginación y sustituirla por un scroll infinito donde se van cargando los post a medida que el usuario va haciendo scroll con la rueda de su ratón.
En este script hacemos webscraping scroll infinito y te explico el código en el vídeo para que puedas modificar el código para la página que quieras scarpear.
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import pandas as pd
import time
#/////////////////////////////////////////////
options= Options()
options.headless = False
#///////////////////////////////////////////////////
driver = webdriver.Chrome(executable_path=r'chromedriver', options=options)
driver.get('https://comercioymarketing.es/contenidos-cdi/')
driver.maximize_window()
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3)
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
else:
last_height = new_height
posts = driver.find_elements_by_xpath("//header[@class='entry-header']")
listaTitulos=[]
for post in posts:
titulo = post.find_element_by_xpath(".//h2[@class='entry-title']").text
listaTitulos.append(titulo)
df = pd.DataFrame({'Titulo':listaTitulos})
df.to_csv('titulos.csv', index=False)
Juande Marín
Profesor de Marketing digital, divulgador de inteligencia artificial y neuroeducación. Especializado en posicionamiento en buscadores y diseño web. Autor de varios libros relacionados con el comercio electrónico y el marketing digital (McGraw Hill, Paraninfo,…) Juande2marin