Escolar Documentos
Profissional Documentos
Cultura Documentos
RESUMO: Este artigo, por meio de revisão bibliográfica, apresenta uma programa
que extrair dados abertos de pessoas jurídicas do site da Receita Federal. Os dados
serão extraídos por meio de web scraping com bibliotecas Python. Ao final obtemos
diversos arquivos em formato CSV que podem ser utilizados como Data Frame.
1. Introdução
Diante do fenômeno da globalização e do surgimento de novas tecnologias, o
processo produtivo vem evoluindo e o mercado tem se tornado cada vez mais
competitivo. Neste cenário, as empresas precisam otimizar a utilização de seus
recursos, ter informações confiáveis. A informação é um dos principais recursos as
empresa precisam utiliza para sustentar-se no mercado.
Em muitos casos, a informação não está contida dentro da própria entidade
empresarial, é preciso extraí-la de diversas fontes externas como redes sociais,
catálogos, documentos e mídias espalhadas em sites da internet. Esta técnica de
extração de informação da internet é comumente referenciada como web scraping,
scrape data, extract data ou extração de dados na web. Pode ser executada com
diversas tecnologias. Este artigo opta pela linguagem de programação Python por
sua simplicidade, leveza e robustez. Em artigos futuros, há pretensão de aplicar
outras técnicas de ciências de dados sobre os dados obtidos. Esta decisão alinha-se
com a orientação de Grus2:
Há um sólido debate sobre qual a melhor linguagem para aprender data
science. Muitos acreditam que é a linguagem de programação estatística R
(achamos que essas pessoas estão erradas). Poucos sugerem Java ou
Scala. Contudo, Python é a escolha evidente.
<https://edisciplinas.usp.br/pluginfile.php/5742167/mod_resource/content/1/Data%20Science%20do%
20zero%20-%20Primeiras%20regras.pdf>. Acesso em 21 Jan. 2024.
2
Este artigo utiliza como fonte o banco de dados da Receita Federal do Brasil3,
que armazena informações cadastrais das pessoas jurídicas e outras entidades de
interesse das administrações tributárias da União, dos Estados, do Distrito Federal e
dos Municípios. Este banco de dados é relevante pois possui informações
atualizadas mensalmente sobre empresas de diversos ramos de atividade pelo país.
Estas podem ter grande relevância para diversos fins. Tem-se como exemplo
serviços bancários, comércio atacadista, agências de publicidade, etc. Os arquivos
estão ancoradas no endereço <https://dadosabertos.rfb.gov.br/CNPJ/> em dezenas
de documentos com milhares de registros, tornando a extração manual da
informação onerosa e insuportável por arquivos tradicionais como Excel. O escopo
deste artigo é desenvolver um programa para extrair e carregar os dados abertos de
pessoas jurídicas e prepara-los para posterior utilização.
A metodologia utilizada é revisão bibliográfica. O tema é amplamente
abordado por diversos autores. Existe farta literatura e inclusive projetos
compartilhados na plataforma GitHub sobre o tema.
3BRASIL. Receita Federal. Cadastro Nacional de Pessoa Jurídica – CNPJ. Disponível em:
https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---cnpj. Acesso em:
21 Jan. 2024
3
4 GONCALVES, Carlos Roberto. Direito Civil Esquematizado. São Paulo: Saraiva, 2011. Pag. 179
5 BRASIL. Lei nº 10.406, de 10 de janeiro de 2002. Código Civil. Brasília. Disponível em: <
https://www.planalto.gov.br/ccivil_03/leis/2002/l10406compilada.htm >. Acesso em: 29 Jan 2024.
6 BRASIL. Instrução Normativa RFB nº 1.863, de 27 de Dezembro de 2018. Institui o Cadastro
https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---cnpj>. Acesso em
29 Jan 2024.
8 BRASIL. Decreto nº 8.777, de 11 de Maio de 2016. Institui a Política de Dados Abertos. Disponível
9MITCHELL, Ryan. Web Scraping with Python. Editora O’Reilly. 2015, DOI 978-1-491-91029-0.
10RICTOM. Cnpj-sqlite. Disponível em <https://github.com/rictom/cnpj-sqlite> Acesso em 29 Jan 2024
5
sys.stdout.write("\r" + progress_message)
sys.stdout.flush()
print('\n\n'+ time.asctime() + f' Finalizou!!! Baixou {len(list)} arquivos.')
novo_nome = f"{novo_nome}{contador}.CSV"
novo_caminho = os.path.join(pasta, novo_nome)
os.rename(caminho_completo, novo_caminho)
print(f"Arquivo renomeado de '{nome_arquivo}' para '{novo_nome}'.")
contador += 1
#TRANSFORMA EM DATAFRAME
df = pd.read_csv('/content/dados-publicos/PAIS1.CSV', delimiter=';',
encoding='latin1')
print (df)
Embora não seja o caso dos dados disponíveis na Receita Federal, quando
fala-se sobre extração de dados na web, vale apena lembra que existem diversas
formas de um site impedir ou dificuldade o web scraping. Tais barreiras exigem
abordagens distintas conforme o caso. Zhao12, explica:
A web application may adopt one of the following measures to stop or
interfere with a web scrapping tool that collects data from the given website.
Those measures may identify whether an operation was conducted by a
human being or a bot. Some of the major measures include the following:
HTML “fingerprinting” that investigates the HTML headers to identify whether
a visitor is malicious or safe (Acar et al. 2013); IP reputation determination,
11
KOPTU, Vijay; DASHPANDE, Bala. Data Science: Concepts and Practice. United States: Elsevier, 2019. Pag 23,
25.
12ZHAO, Bo. Web Scraping. Oregon State University. Disponível em:
<https://www.researchgate.net/profile/Bo-Zhao-
3/publication/317177787_Web_Scraping/links/5c293f85a6fdccfc7073192f/Web-Scraping.pdf>. Acesso
em 29 Jan 2024
8
Outro ponto interessante é que, caso estivéssemos falando sobre Big Data, o
processo de carregar os dados demandaria a utilização de outras tecnologias.
Grande volume de dados variados que crescem com velocidade excede a
capacidade de softwares comuns de processamento de dados. Dentro os principais
softwares dedicados a tratar grandes volumes destacam-se: o Hadoop que em 2006
permitiu o escalonamento horizontal de um problema em vários computadores; em
2009 o Hive surge como alternativa que permitia trabalhar com menos conhecimento
em programação; Spark surge em 2011 para otimizar a velocidade de
processamento em tempo real; o Datablickets surge em 2015 para facilitar as
consultas do apache Spark.
4. Conclusão
5. Referências Bibliográficas
BRASIL. Cadastro Nacional da Pessoa Jurídica – CNPJ. Disponível em: <
https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---
cnpj>. Acesso em 29 Jan 2024.
GRUS, Joel. Data Science do Zero. Rio de Janeiro: Alta Books, 2016. 336 p.
Disponível em
<https://edisciplinas.usp.br/pluginfile.php/5742167/mod_resource/content/1/Data%20
Science%20do%20zero%20-%20Primeiras%20regras.pdf>. Acesso em 21 Jan.
2024.
KOPTU, Vijay; DASHPANDE, Bala. Data Science: Concepts and Practice. United
States: Elsevier, 2019. Pag 23, 25.
MITCHELL, Ryan. Web Scraping with Python. Editora O’Reilly. 2015, DOI 978-1-
491-91029-0.