aphonsoar / Receita_Federal_do_Brasil_-_Dados_Publicos_CNPJ

Dados Públicos de CNPJ disponibilizados pela Receita Federal do Brasil
MIT License
295 stars 130 forks source link

Erro em Wget.dowload #14

Closed tutalucena closed 2 years ago

tutalucena commented 2 years ago

Boa tarde pessoal! Ao corrigir o erro do .env, o código ao ser rodado apresentou o seguinte erro: erro Por favor, peço ajuda esse código vai me ajudar muito!

marcelo-franceschini commented 2 years ago

Boa tarde @tutalucena. Cara, vamos por partes:

marcelo-franceschini commented 2 years ago

Se conseguir resolver, feche os issues, por gentileza. Só pra facilitar a vida do pessoal que mantém o código. Eu só dei clone no repo e to recebendo no e-mail esses issues bobos kkkk vai entender

tutalucena commented 2 years ago

Boa tarde, Segue apontamentos: -Vi que você já tem um issue aberto. Na próxima vez, responda no mesmo issue. Assim não teremos vários para o mesmo assunto. --Ok, vou fechar os issue assim que resolver. -Não quero ser grosso ou cruel, mas se você quer executar um script python, é recomendável que você conheça um pouco da linguagem. Você domina python? --Não há porque ser grosso eu apenas estou tentando entender,vou ser sincero com você, sou analista de dados, me deram uma atividade fora do meu campo de atuação eu uso python sim porém com foco em outras coisas, de fato tenho muita dificuldade para entender o seu código. Estou fazendo o melhor que eu posso.

Se conseguir resolver, feche os issues, por gentileza. Só pra facilitar a vida do pessoal que mantém o código. Eu só dei clone no repo e to recebendo no e-mail esses issues bobos kkkk vai entender

erro_

marcelo-franceschini commented 2 years ago

Evite criar diretórios com espaço. Coloca aspas nos diretórios ou muda para TesteRF. Tenta de novo e posta aqui. Tmj

marcelo-franceschini commented 2 years ago

OUTPUT_FILES_PATH=C:/diretoriosemespaco ou OUTPUT_FILES_PATH="C:/diretorio com espaco"

entender o seu código

O código não é meu :)

marcelo-franceschini commented 2 years ago

Outra dica que eu posso te dar: O site da receita costumava ser MUITO lerdo pra baixar. Faz tempo que não baixo, não sei como tá hoje. Esse script é zero performático para download pois não é multithread (vai baixar um por um). Se eu fosse você, baixava tudo pelo Chrome, extraia, e apagava a parte de download/unzip do script.

tutalucena commented 2 years ago

Evite criar diretórios com espaço. Coloca aspas nos diretórios ou muda para TesteRF. Tenta de novo e posta aqui. Tmj

OUTPUT_FILES_PATH=C:/diretoriosemespaco ou OUTPUT_FILES_PATH="C:/diretorio com espaco"

entender o seu código

O código não é meu :)

Eu eliminei o espaço e não deu certo, depois adicionei aspas, e mesmo assim ele faz o dowload dos arquivos no diretório do código =( erro_

marcelo-franceschini commented 2 years ago

Espera o download terminar. Eu ACHO que wget primeiro vai baixar na pasta raiz do script e depois irá mover para a pasta setada no parâmetro out.

Baixando: image

Depois de concluído: image

Mas novamente, se eu fosse você baixava pelo Chrome vários ao mesmo tempo, pois o servidor da RBF ainda está em 1999 aparentemente: image

tutalucena commented 2 years ago

@marcelo-franceschini vou aguardar o download finalizar e lhe informo. Independente de dar certo, ou não, eu agradeço ai a sua disponibilidade em me ajudar. Vou baixar as pastas pelo Chrome mesmo para depois fazer as tratativas, demora muito mesmo.

tutalucena commented 2 years ago

@marcelo-franceschini Após o dowload o debug retornou o seguinte apontamento, não consegui entender... erro_

marcelo-franceschini commented 2 years ago

Desculpa a demora. Troca as linha 25 e 26 de: output_files = Path(getEnv('OUTPUT_FILES_PATH')) extracted_files = Path(getEnv('EXTRACTED_FILES_PATH')) para: output_files = str(Path(getEnv('OUTPUT_FILES_PATH'))) extracted_files = str(Path(getEnv('EXTRACTED_FILES_PATH'))) e apaga a parte de download. Acho que é da linha 63 a 78.

tutalucena commented 2 years ago

@marcelo-franceschini eu que tenho que pedir desculpas pela série de dúvidas kkk Fiz o correção e ele salvou os arquivos na pasta que designei! Achei que daria tudo certo, porém na hora de criar os índices travou novamente, segue o DEBUG: erro_

tardoproto commented 2 years ago

Tive o mesmo problema original do @tutalucena e a solução proposta por @marcelo-franceschini , de simplesmente incluir um "str" antes de "(Path(getEnv('OUTPUT_FILES_PATH')))", na linha 25, funcionou.

str(Path(getEnv('OUTPUT_FILES_PATH')))

Muito obrigado!

Estou usando Windows 10 (sei que não é o ideal, mas faz tempo que não tenho uma segunda máquina para Linux) e Thonny (Python 3.7).

E aproveito para agradecer e parabenizar @aphonsoar

ATUALIZAÇÃO: Comemorei cedo demais também. Consegui fazer o download, mas depois caí no mesmo (segundo) erro relatado por @tutalucena (linha 729, "Undefined table"). Imagino que seja um problema de gestão de path no Windows. Movi os arquivos baixados manualmente para a pasta de destino e fiz a descompressão. Fiz um "comment out" nas linhas relativas ao download e descompressão e reiniciei o programa.

Como nada é fácil, tropecei agora em um erro de unicode:

Trabalhando no arquivo: K3241.K03200Y0.D11113.EMPRECSV [...]
Traceback (most recent call last):
  File "C:\Users\danie\Documents\Programming\CNPJ-scraper\RFB_ETL\ETL_coletar_dados_e_gravar_BD.py", line 185, in <module>
    dtype=empresa_dtypes)
  File "C:\Users\danie\AppData\Roaming\Python\Python37\site-packages\pandas\util\_decorators.py", line 311, in wrapper
    return func(*args, **kwargs)
  File "C:\Users\danie\AppData\Roaming\Python\Python37\site-packages\pandas\io\parsers\readers.py", line 586, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "C:\Users\danie\AppData\Roaming\Python\Python37\site-packages\pandas\io\parsers\readers.py", line 488, in _read
    return parser.read(nrows)
  File "C:\Users\danie\AppData\Roaming\Python\Python37\site-packages\pandas\io\parsers\readers.py", line 1047, in read
    index, columns, col_dict = self._engine.read(nrows)
  File "C:\Users\danie\AppData\Roaming\Python\Python37\site-packages\pandas\io\parsers\c_parser_wrapper.py", line 223, in read
    chunks = self._reader.read_low_memory(nrows)
  File "pandas\_libs\parsers.pyx", line 801, in pandas._libs.parsers.TextReader.read_low_memory
  File "pandas\_libs\parsers.pyx", line 857, in pandas._libs.parsers.TextReader._read_rows
  File "pandas\_libs\parsers.pyx", line 843, in pandas._libs.parsers.TextReader._tokenize_rows
  File "pandas\_libs\parsers.pyx", line 1917, in pandas._libs.parsers.raise_parser_error
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 137360: invalid continuation byte

Tentei inserir um "encoding="utf-8" (tentei também encoding="latin-1") na linha 180, mas não deu certo.

aphonsoar commented 2 years ago

Eu tambem enfrentei o problema no wget e na definicao dos paths. com isso, subi ha pouco um commit com algumas correcoes no codigo para Windows 10 - a definicao do objeto como tipo WindowsPath estava causando problema, eh melhor deixar como string mesmo. Testei o processo end-to-end aqui e agora funcionou perfeitamente, detalhes aqui: commit.

Com isso, entendo que o problema reportado nessa issue (erro no wget e path) ficou solucionado.

@tardoproto, conseguiu resolver este outro problema de encoding que vc enfrentou?

Rodrigojxj commented 2 years ago

@tardoproto Tive o mesmo problema, como resolveu?

aphonsoar commented 2 years ago

@Rodrigojxj vc clonou o projeto novamente? Eu subi um commit em Abril que aparentemente resolveu isso - pra mim funcionou 100%

Rodrigojxj commented 2 years ago

Sim, consegui colocando encoding='ISO-8859-1' na parte de empresa, porém tive problemas novamente em estabelecimento.