CNPJ-full
CNPJ-full copied to clipboard
Download dos arquivos
Não seria interessante que o programa fizesse o download dos arquivos tbm?
Enfrento o problema de minha conexão ser lenta, então caso o programa fizesse o download para mim seria útil, facilitando tbm quando eu queira atualizar os dados. Assim, estou escrevendo fazendo um branch próprio com esta funcionalidade, gostaria de saber se existe interesse em adiciona-la à este master.
Nota: peço desculpas por qualquer equivoco, dado minha inexperiência sobre programação.
Acho que isso já foi resolvido, amigo. Você pode usar o aria2. O Turicas, no repositório do GitHub referente a dados de empresas, fez um código simples pra esse download usando aria2:
#!/bin/bash
set -e
mkdir -p data/download data/output
if [ "$1" = "--use-mirror" ]; then
USE_MIRROR=true
else
USE_MIRROR=false
fi
function download_data() {
CONNECTIONS=4
DOWNLOAD_URL="https://receita.economia.gov.br/orientacao/tributaria/cadastros/cadastro-nacional-de-pessoas-juridicas-cnpj/dados-publicos-cnpj"
FILE_URLS=$(wget --quiet --no-check-certificate -O - "$DOWNLOAD_URL" \
| grep --color=no DADOS_ABERTOS_CNPJ \
| grep --color=no ".zip" \
| sed 's/.*"http:/http:/; s/".*//' \
| sort)
MIRROR_URL="https://data.brasil.io/mirror/socios-brasil"
for url in $FILE_URLS; do
if $USE_MIRROR; then
url="$MIRROR_URL/$(basename $url)"
fi
time aria2c --auto-file-renaming=false --continue=true -s $CONNECTIONS -x $CONNECTIONS --dir=data/download "$url"
done
}
download_data
Realmente simples, porém o programa precisa rodar em ambiente Windows. Mesmo assim obrigado pela dica
Vou testar! Obrigado pela dica.
Pra compartilhar com vcs... esse script eu fiz pra baixar tudo em python... consegue baixar mais de um arquivo por vez. No ex abaixo 5.
import requests
from joblib import delayed, Parallel
from tqdm import tqdm
def download_from_url(url,chunk_size=1024):
dst = url.split('/')[-1]
chunk_size = int(chunk_size)
file_size = int(requests.head(url).headers["Content-Length"])
pbar = tqdm( total=file_size, unit='B', unit_scale=True, unit_divisor=1024, desc=url.split('/')[-1])
req = requests.get(url, stream=True)
with(open(dst, 'wb')) as f:
for chunk in req.iter_content(chunk_size=chunk_size):
if chunk:
f.write(chunk)
pbar.update(chunk_size)
pbar.close()
return file_size
base_url = 'http://200.152.38.155/CNPJ/DADOS_ABERTOS_CNPJ_{}.zip'
from joblib import parallel_backend
with parallel_backend('threading', n_jobs=5 ):
Parallel(verbose=70)(delayed(download_from_url )(base_url.format(str(i).zfill(2))) for i in range(1,21,1))
Legal! Obrigado!
Denis
Em 27 de jul de 2020, à(s) 22:09, Rafael Rui [email protected] escreveu:
Pra compartilhar com vcs... esse script eu fiz pra baixar tudo em python... consegue baixar mais de um arquivo por vez. No ex abaixo 5.
import requests from joblib import delayed, Parallel from tqdm import tqdm def download_from_url(url,chunk_size=1024): dst = url.split('/')[-1] chunk_size = int(chunk_size) file_size = int(requests.head(url).headers["Content-Length"]) pbar = tqdm( total=file_size, unit='B', unit_scale=True, unit_divisor=1024, desc=url.split('/')[-1]) req = requests.get(url, stream=True) with(open(dst, 'wb')) as f: for chunk in req.iter_content(chunk_size=chunk_size): if chunk: f.write(chunk) pbar.update(chunk_size) pbar.close() return file_size base_url = 'http://200.152.38.155/CNPJ/DADOS_ABERTOS_CNPJ_{}.zip' from joblib import parallel_backend with parallel_backend('threading', n_jobs=5 ): Parallel(verbose=70)(delayed(download_from_url )(base_url.format(str(i).zfill(2))) for i in range(1,21,1)) — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
Realmente simples, porém o programa precisa rodar em ambiente Windows. Mesmo assim obrigado pela dica
@marcoeuzb Você pode baixar o Ubuntu no linux. Só colocar "Ubuntu" na Microsoft Store que aparece. Uma vez com ele instalado, vá para o caminho /mnt/c/ que você terá acesso aos arquivos no windows. Aí você pode ir para o diretório de interesse e executar o .sh
O problema é baixar em velocidade descente.. Já tentei mandar e-mail pra eles, mas vocês obviamente, ainda não tive respostas.
Serviço temporariamente indisponível. Tente novamente em alguns instantes.
https://receita.economia.gov.br/orientacao/tributaria/cadastros/cadastro-nacional-de-pessoas-juridicas-cnpj/dados-publicos-cnpj
Isso é normal??
Esse link é o antigo, até o ano passado. Os dados mais atualizados a partir de 2021 estão em https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/consultas/dados-publicos-cnpj só que estão em outro formato, em csv.
Obrigado pela informação!!