Prof.: Ms. Alex Lima
Curso: MBA em Ciência de Dados
Aluna: Gabriela Ferreira Coutinho - 2418581
Acesse o repositório no GitHub.
Este projeto tem como objetivo coletar dados da UEFA Champions League a partir do site Sofascore e realizar uma análise das últimas 10 temporadas (entre 2014 até 2014). A coleta de dados é feita através de Web Scraping, utilizando as bibliotecas Requests, BeautifulSoup e Selenium.
- Realizar a coleta automatizada de estatísticas dos jogadores em cada temporada.
- Armazenar os dados em formato CSV de maneira organizada.
- Analisar e recuperar informações relevantes a partir dos dados coletados.
- Python 3.x
- Requests (para coleta de páginas estáticas)
- BeautifulSoup (para extração de dados da página)
- Selenium (para interação com elementos dinâmicos)
- Pandas (para manipulação e armazenamento de dados)
- Requests (requisições HTTP)
- Jupyter Notebook (para execução e organização do código)
Champions-League-Analysis/
│── data/ # Diretório onde serão salvos os dados coletados
│ ├── temporadas/ # Dados organizados por temporada (ex: 22-23, 21-22)
│ │ ├── Ataque/ # Estatísticas de ataque por temporada
│ │ ├── Defesa/ # Estatísticas defensivas por temporada
│ │ ├── Passe/ # Estatísticas de passes por temporada
│ │ ├── Goleiro/ # Estatísticas de goleiros por temporada
│ ├── temporadas_urls.csv # Arquivo com URLs das temporadas para scraping
│── data_unificada/ #Contém os arquivos CSV que foram limpos, organizados e unificados por categoria
│── champions_league_analysis.ipynb # Notebook principal
│── requirements.txt # Lista de dependências do projeto
│── readme.md # Este arquivo README
- Clone o repositório
- Crie um ambiente virtual e instale as dependências:
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
- Abra o Jupyter Notebook:
jupyter notebook
- Execute o notebook
champions_league_analysis.ipynb
para iniciar a coleta de dados.
- Captura Dinâmica de URLs das Temporadas: Utiliza Selenium para navegar até a lista de temporadas e coletar os IDs automaticamente.
- Web Scraping Híbrido: Usa Requests + BeautifulSoup para obter a primeira página e Selenium para navegar nas páginas seguintes.
- Extração Completa das Estatísticas dos Jogadores: Gols, assistências, passes certos, entre outras métricas.
- Salvamento Estruturado: Os dados são armazenados na pasta
data/
em arquivos.csv
, separados por temporada.
A segunda parte do projeto se concentra em extrair informações úteis a partir dos dados coletados. Algumas análises realizadas incluem:
- Avaliação do desempenho médio de jogadores e equipes ao longo das últimas 10 temporadas.
- Identificação de padrões e evolução das estatísticas por posição (Ataque, Defesa, Passe e Goleiro).
- Uso da mediana em vez da média para garantir robustez nos dados.
- Criação de rankings de clubes usando duas abordagens:
- Mediana da Nota Sofascore - Reflete a avaliação geral da performance dos jogadores no time.
- Mediana das Estatísticas (sem métricas percentuais e qualitativas) - Considera apenas estatísticas objetivas como gols, passes e desarmes.
- Comparação visual entre os rankings baseados em nota e métricas objetivas.
- Classificação dos jogadores com maior impacto em cada categoria (Ataque, Defesa, Passe e Goleiro).
- Excluindo métricas qualitativas para um ranking mais justo, focado apenas em estatísticas numéricas.
- Comparação entre os melhores jogadores por temporada.
- Identificação do jogador mais impactante baseado na mediana das métricas objetivas.
- Ranking dos melhores times baseados em desempenho agregado das estatísticas (gols, passes, assistências, desarmes, etc.).
- Problemas com Selenium? Certifique-se de que o WebDriver está instalado corretamente:
pip install --upgrade selenium webdriver-manager
- Bloqueio pelo Sofascore? Tente alterar o
User-Agent
no código. - Erro ao salvar os arquivos? Verifique se a pasta
data/
existe antes de executar o scraping.import os os.makedirs("data", exist_ok=True)
- Erro no WebDriver Manager? Exclua a pasta do ChromeDriver e tente novamente.
rm -rf ~/.wdm/drivers/chromedriver
Este projeto é de uso educacional e não deve ser utilizado para fins comerciais. Todos os dados pertencem ao Sofascore.