Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error al lanzar script #1

Open
jesbrz opened this issue Nov 21, 2022 · 8 comments
Open

Error al lanzar script #1

jesbrz opened this issue Nov 21, 2022 · 8 comments

Comments

@jesbrz
Copy link

jesbrz commented Nov 21, 2022

Hola Sergio. Estoy intentando utilizar el script de python para scrapear las estadísticas de la liga. Una vez configurado todo sin error, cuando lanzo el script, al cabo de un rato, me devuelve este error:

221121 18:43:19 [INFO ] Moving to https://www.laliga.com/en-ES/advanced-stats (core.py:43) 221121 18:43:55 [ERROR ] TimeoutException by Selenium (network.py:60) 221121 18:43:55 [WARNING ] No advertisements found (core.py:73) 221121 18:43:55 [INFO ] Getting season (core.py:76) Traceback (most recent call last) ────────────────────────────────╮ │ /laliga-data/main.py:27 in run │ │ │ │ 24 │ logger.setLevel(logzero.DEBUG if verbose else logzero.INFO) │ │ 25 │ │ │ 26 │ scraper = LaLigaScraper() │ │ ❱ 27 │ scraper.get_player_data(num_players) │ │ 28 │ scraper.to_dataframe() │ │ 29 │ scraper.wrangle_dataframe() │ │ 30 │ scraper.to_csv() │ │ │ │ ╭──────────────────────────── locals ─────────────────────────────╮ │ │ │ num_players = 0 │ │ │ │ scraper = <laliga.core.LaLigaScraper object at 0x117fad0d0> │ │ │ │ verbose = False │ │ │ ╰─────────────────────────────────────────────────────────────────╯ │ │ │ │ /laliga-data/laliga/core.py:152 in get_player_data │ │ │ │ 149 │ │ │ │ logger.error('Unable to retrieve data') │ │ 150 │ │ │ 151 │ def get_player_data(self, num_players=0): │ │ ❱ 152 │ │ while competition := self._load_next_competition(): │ │ 153 │ │ │ time.sleep(10) │ │ 154 │ │ │ self.get_player_data_by_competition(competition, num_players) │ │ 155 │ │ │ │ ╭──────────────────────────── locals ─────────────────────────────╮ │ │ │ num_players = 0 │ │ │ │ self = <laliga.core.LaLigaScraper object at 0x117fad0d0> │ │ │ ╰─────────────────────────────────────────────────────────────────╯ │ │ │ │ /laliga-data/laliga/core.py:119 in _load_next_competition │ │ │ │ 116 │ │ │ │ yield build_url(tr.td.a['href']) │ │ 117 │ │ │ 118 │ def _load_next_competition(self): │ │ ❱ 119 │ │ competitions_div = self.webdriver.find_element_by_xpath(self.competitions_div_xp │ │ 120 │ │ self.webdriver.execute_script('window.scrollTo(0, 0);') │ │ 121 │ │ time.sleep(1) │ │ 122 │ │ competitions_div.click() │ │ │ │ ╭───────────────────────── locals ─────────────────────────╮ │ │ │ self = <laliga.core.LaLigaScraper object at 0x117fad0d0> │ │ │ ╰──────────────────────────────────────────────────────────╯ │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'

¿Sabes a qué puede ser debido?

un saludo y gracias.

@sdelquin
Copy link
Owner

Hola,

Me da la sensación de que puede ser por la versión de selenium.
Si instalas los paquetes desde el fichero de requerimientos, debería instalar la versión correcta (pip install -r requirements.txt).

En cualquier caso, también puedes hacer: pip install selenium==3.14.1

Si te sirve, los datos se generan diariamente y los puedes encontrar aquí.

@jesbrz
Copy link
Author

jesbrz commented Nov 22, 2022

Hola Sergio. He actualizado selenium y he vuelto a correr los requerimientos por si acaso y el error ha desaparecido, pero me da uno nuevo:

ElementClickInterceptedException: Message: Element <div class="styled__SelectedItem-d9k1bl-1 ihyxCr"> is not clickable at point (140,400) because another element <p> obscures it

Que me da que debe ser un error de la página...

Ya vi que los datos se pueden descargar desde el repositorio, pero no están actualizados desde hace 20 días y me interesaba tenerlos semanalmente, de ahí que intente correrlo localmente.

Un saludo y gracias de nuevo.

@sdelquin
Copy link
Owner

Hola,

Ya he resuelto el error que había. El tema es que han añadido el mundial de Qatar en las estadísticas, y no mantiene una estructura homogénea. Lo he quitado del procesamiento y he vuelto a lanzar el script.

Ya están los datos actualizados de hace unos minutos.

Saludos

@jesbrz
Copy link
Author

jesbrz commented Nov 22, 2022

Muchas gracias por actualizar los datos. El script me sigue dando el mismo error, no sé cuál puede ser el problema y porque no me funciona.

Un saludo y gracias de nuevo.

@sdelquin
Copy link
Owner

La verdad es que no tengo claro tu error. Muchas veces en función de cómo se abra la página, aparecen unos elementos u otros que pueden ocultar los que tienen detrás. Es difícil depurarlo.

@jesbrz
Copy link
Author

jesbrz commented Nov 22, 2022

Muy agradecido Sergio, a ver si consigo hacer algo, de todos modos los descargaré desde aquí para procesarlos.

Saludos.

@sdelquin
Copy link
Owner

De nada. Te agradezco que te hayas puesto en contacto conmigo. Y la verdad que estaría interesado en saber qué haces con los datos. Yo me he dedicado más a la parte de scraping, pero no los he explotado.

@jesbrz
Copy link
Author

jesbrz commented Nov 22, 2022

De momento estoy haciendo análisis estadísticos y de rendimiento de jugadores, fijándome sobre todo en segunda división.

Por ahora es solo un inicio, no están pensados para hacerlos públicos, aunque en el futuro no lo descarto (por supuesto en ese caso haría mención de tu trabajo, que me parece muy interesante, en otros países hay más iniciativas de este tipo y de ligas como la inglesa puedes encontrar datos por todas partes, pero aquí es más complicado).

Un saludo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants