Open afmota opened 1 year ago
Alterei o arquivo para funcionar com a nova URL, que já baixa um excel. Então não precisa de scrapping em HTML. Depois faço um pull request. É só alterar o conteúdo para o abaixo.
from zipfile import ZipFile, is_zipfile from requests import get from io import BytesIO from pandas import read_html import pandas as pd
URL = 'https://servicebus2.caixa.gov.br/portaldeloterias/api/resultados/download?modalidade=Lotof%C3%A1cil'
def html_resultados(url): """ Obtém os dados de todos os sorteios da lotofácil.
:param url: Endereço para obter o arquivo ZIP
com os dados dos sorteios da lotofácil
:returns: Conteúdo HTML do arquivo ZIP
"""
resposta = get(url, stream = True, verify = False)
verifica_zip = is_zipfile(BytesIO(resposta.content))
if verifica_zip:
arquivo = ZipFile(BytesIO(resposta.content))
with arquivo as zip:
dados = zip.read('d_lotfac.htm')
zip.close
return dados
html = pd.read_excel(URL) print(html)
dados = html print(dados)
base = dados.iloc[:, [*[i for i in range(17)], 18]]
base = base.drop_duplicates('Concurso')
colunas = {'Bola1': 'B1', 'Bola2': 'B2', 'Bola3': 'B3', 'Bola4': 'B4', 'Bola5': 'B5', 'Bola6': 'B6', 'Bola7': 'B7', 'Bola8': 'B8', 'Bola9': 'B9', 'Bola10': 'B10', 'Bola11': 'B11', 'Bola12': 'B12', 'Bola13': 'B13', 'Bola14': 'B14', 'Bola15': 'B15', 'Ganhadores_15_Números': 'Ganhou'}
base.rename(columns=colunas, inplace=True)
base.to_csv('./base/resultados.csv', sep=';', encoding='utf8', index=False)
if name == 'main':
# Informações
concurso = base['Concurso'].max()
data = str(base[base['Concurso'] == concurso]['Data Sorteio'])[8:18]
print(f'\n\033[1;32mTODOS OS RESULTADOS DOS CONCURSOS DA LOTOFÁCIL FORAM BAIXADOS COM SUCESSO!\033[m')
print(f'\n\n\033[1;36mÚltimo sorteio:\033[m {data}\n\033[1;36mConcurso:\033[m {concurso}')
print(f'\n\n\033[1;35mArquivo salvo em:\033[m \033[1;33m./base/resultados.csv\033[m')
Ocorre o seguinte erro:
OSError: Cannot save file into a non-existent directory: 'base'
quando scrapping_resultados.py é executado. Sou iniciante, mas iniciante mesmo no python e não faço ideia de como resolver isso.