- Utilizar o terminal interativo do Python;
- Escrever seus próprios módulos e importá-los em outros códigos;
- Aplicar técnicas de raspagem de dados;
- Extrair dados de conteúdo HTML;
- Armazenar os dados obtidos em um banco de dados. (MySQL)
- Fazer análises usando o pandas.
- Exportar gráficos
- Exportar os dados obtidos para o excel
O projeto foi feito para exercitar minha habilidade de raspagem de dados e matar a minha curiosidade de saber quais eram os jogos de tabuleiro mais bem rankeados, mais populares e mais pesados do top 1000. Além de detalhes como ano, popularidade e com quantas pessoas é o mais recomendado para jogar. Eu amo jogar BG mas nunca tinha feito um estudo sobre os mais bem ranqueados, comecei a estudar o assunto de raspagem de dados e notei que eu poderia matar a curiosidade e exerciar ao mesmo tempo.
A lista com o rank dos jogos pode ser obtido no BoardGame Rank.
Na pasta raiz:
-
requirements.txt
edev-equirements.txt
para adicionar as dependências que foram utilizadas no projeto. -
database.py
é responsável pela conexão com o banco de dados; -
query.py
por adicionar as informações coletadas no banco de dados
Na pasta Analyzer:
-
corr.png
ebest_for_chart_bar
com as imagens plotadas de correlação e gráfico de barra de quantidade indicada de jogadores, respetivamente. -
bg_analyze.ipynb
, um arquivo jupyter notebook mostrando as análises feitas: jogo mais popular, jogo menos popular, jogo mais pesado, jogo mais leve e os dois gráficos acima (de correlação e best for). Todas as funções implementadas estão no arquivo pandas_analyzer.py -
database.py
é responsável pela conexão com o banco de dados; -
query.py
por adicionar as informações coletadas no banco de dados
Importer: Funções responsáveis pela raspagem de dados.
Exporter: Funções responsável por transformar os dados salvos no Banco de Dados MySQL
em csv
Analyzer: Análises e gráficos das informações coletadas da lista de jogos, foi usado o pandas e o seaborn.
- clone o repositório
git clone git@github.com:rodrigoaqueiroz/web-scraping-board-game-geek.git
- Entre na pasta do repositório que você acabou de clonar:
cd web-scraping-board-game-geek
- crie o ambiente virtual
$ python3 -m venv .venv
- ative o ambiente virtual
$ source .venv/bin/activate
- instale as dependências no ambiente virtual
$ python3 -m pip install -r requirements.txt
O arquivo requirements.txt
contém todas as dependências que foram utilizadas no projeto.
A lista de jogos a ser raspadas está disponível na aba Browse/All BoardGames no BGG: https://boardgamegeek.com/browse/boardgame.
Os jogos foram salvos no banco de dados MySQL, usando as funções python implementadas no módulo query.py
, a conexão com o DB está no módulo database.py