henriquepgomide / caRtola

Extração de dados da API do CartolaFC, análise exploratória dos dados e modelos preditivos em R e Python - 2014-22. [EN] Data munging, analysis and modeling of CartolaFC - the most popular fantasy football game in Brazil. Data cover years 2014-23.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Dúvida dados 2020

thiagossilva17 opened this issue · comments

Olá Henrique... Parabéns pelo ótimo trabalhando que vem fazendo quanto aos dados do cartola.

Gostaria de saber se há alguma forma de fazer uma chamada a API e conseguir receber todos os dados de todas as rodadas que aconteceram este ano em uma única chamada?

Realizando as chamadas de API consegui apenas os dados da última rodada finalizada.... Então realizei uma chamada aos seus dados dispostos aqui no GitHub mas as colunas da rodada 1 são divergentes das colunas da rodada 2.... Gostaria de saber se vc ainda tem os dados da rodada 1 dispostos da forma original sem manipulações?

Muito obrigado.

Olá Thiago! Muito obrigado!

Quanto a API do Cartola da Globo, só há como fazer chamada para a última rodada, que alimenta o frontend do Cartola FC Oficial.

Para chamar os dados brutos, você pode acessar os arquivos deste repositório. Aqui tem um Colab com tutorial para você ler em python

TL;DR

Função para abaixo. Depois de colocá-la no seu código, você pode buscar os dados de 2020, chamando.

# Ler dados de 2020 como DataFrame do pandas
df_2020 = read_cartola_data(2020)
import re
import requests
from bs4 import BeautifulSoup
import pandas as pd

def read_cartola_data(year):
    '''
    Read data from a given year of the CaRtola repository

    Parameters:
    year (int) - year inside the range 2018-2020.
    ''' 

    if year in [2018, 2019, 2020]:

        # URL para baixar os arquivos
        url = 'https://github.com/henriquepgomide/caRtola/tree/master/data/{}'.format(year)
        html = requests.get(url)
    
        soup = BeautifulSoup(html.text, 'lxml')
    
        dict_of_files = {}
        for tag in soup.find_all('a', attrs={'href': re.compile('rodada-([0-9]|[0-9][0-9])\.csv')}):
            href_str = tag.get('href')
            file_name = re.sub('/henriquepgomide/caRtola/blob/master/data/{}/'.format(year), 
                            '', 
                            href_str)
            
            file_url = re.sub('/henriquepgomide/caRtola/blob/master/data/{}/'.format(year), 
                            'https://raw.githubusercontent.com/henriquepgomide/caRtola/master/data/{}/'.format(year), 
                            href_str)
            dict_of_files[file_name] = file_url
    
        list_of_dataframes = []
        for key, item in dict_of_files.items():
            df = pd.read_csv(item)
            df['rodada'] = key
            list_of_dataframes.append(df)
    
        df_cartola = pd.concat(list_of_dataframes)
    
        return df_cartola
    
    else:
        print('You need to add an year within the range: 2018 and 2020')