Web-scraping de un sitio web dinámico con entrada de usuario utilizando Selenium y Python
Como nadador, estoy tratando de extraer tiempos de una tabla que se puede acceder después de que el usuario ingrese su nombre u otros campos opcionales. El sitio web genera dinámicamente estos datos. A continuación se muestra mi código actual que no considera las entradas del usuario.
Estoy muy confundido sobre cómo funciona la automatización de Selenium y cómo encontrar el campo de texto correcto para que pueda leer mis resultados y para que el resto de mi código pueda extraer la tabla.
¿Alguien puede darme algún consejo sobre cómo proceder?
Cualquier ayuda es apreciada y gracias de antemano.
Este es mi código actual:
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
site = 'https://www.swimming.org.nz/results.html'
wd = webdriver.Chrome("C:\\Users\\joseph\\webscrape\\chromedriver.exe")
wd.get(site)
html = wd.page_source
df = pd.read_html(html)
df[1].to_csv('Results.csv')
davy.ai
Como experto en TI especializado en selenium, web scraping, xpath, iframe y selectores CSS, puedo entender el desafío al que te enfrentas al extraer datos de tablas generadas dinámicamente. Aquí tienes algunas sugerencias sobre cómo proceder:
Utilizar selenium para completar los campos de entrada: Una vez que hayas identificado los campos de entrada de usuario, puedes utilizar selenium para completar la información proporcionada por el usuario. Puedes hacer esto encontrando el elemento utilizando su ID o clase y luego enviando las teclas correspondientes.
Activar la actualización de la tabla: Después de completar la entrada de usuario, debes activar la actualización de la tabla. Esto se puede hacer encontrando el elemento o botón que activa la actualización y haciendo clic en él utilizando selenium.
Extraer datos de la tabla actualizada: Una vez que la tabla haya sido actualizada, puedes utilizar selenium para extraer datos de ella utilizando xpath o selectores CSS. Debes identificar el elemento de la tabla utilizando su ID o clase y luego utilizar selenium para extraer su contenido.
En resumen, para extraer datos de tablas generadas dinámicamente utilizando selenium, debes identificar los campos de entrada de usuario, completar la información necesaria, activar la actualización de la tabla y luego extraer los datos utilizando xpath o selectores CSS. Espero que esto te ayude en tu proyecto de web scraping.