pescap / WebScrapingMDS

Proyectos del curso de Web Scraping del MDS UAI 2022
GNU General Public License v3.0
12 stars 42 forks source link

Consulta Selenium - Idioma Navegador #251

Closed FASTORG closed 1 year ago

FASTORG commented 1 year ago

Hola!,

estoy trabajando con Selenium y tengo esta parte de código que busca un botón por texto, mi navegador lo encuentra en español, pero mi duda es qué pasa si alguien lo usa en otro idioma y por ejemplo fuera 'show more matches'. Eso se debe corregir o debe considerarse en la presentación del scrapper???

target = driver.find_element_by_link_text('Mostrar más partidos')

El código completo que entra a la página es este

# Librerías
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time
import pandas as pd
from selenium.webdriver.common.action_chains import ActionChains

# Opciones de navegación
options =  webdriver.ChromeOptions()
options.add_argument('--start-maximized')
options.add_argument('--disable-extensions')

driver_path = 'C:\\Users\\fjast\\Desktop\\Magister\\La Web como Fuente de Datos\\Web scrapping - Futbol\\driver\\chromedriver.exe'

driver = webdriver.Chrome(driver_path, chrome_options=options)

# Inicialia el navegador
driver.get('https://www.flashscore.cl/futbol/chile/primera-division/resultados/')

### Aceptar cookies
WebDriverWait(driver, 20)\
    .until(EC.element_to_be_clickable((By.ID,
                                      'onetrust-accept-btn-handler')))\
    .click()

# Buscar botón "buscar más"

# qué pasa si se abre en otro idioma????

target = driver.find_element_by_link_text('Mostrar más partidos')

# Se mueve al botón "mostrar más"
actions = ActionChains(driver)
actions.move_to_element(target)
actions.perform()
Davives commented 1 year ago

Hola! En general hay un tema con cualquier scraper que de alguna forma cualquier código depende de la pagina, y en particular estas soluciones que dependen solo de texto o XPath no son tan robustas. Te recomiendo que si tienes el tiempo busques por id u otros elementos, pero si no, es una limitación a considerar que puede ser interesante mencionar en la presentación si lo estimas conveniente, pero en ningún caso una obligación. Saludos!