Package: neoscr
neoscrInstallpipinstallneoscrHow to useFill me in please! Don’t forget code examples:fromneoscr.coreimportConsultaSCRimportosscr=ConsultaSCR(user=os.environ["SCR_USER"],password=os.environ["SCR_PASSWORD"],code=os.environ["SCR_CODE"],api_key=os.environ["SCR_API_KEY"])WarningYou have the choice to not pass the API credentials on theConsultaSCRinstantiation, but for that you should have the credentials to access
the SCR API stored in your OS environment variables.cpf="867.168.046-09"# fake cpfano=2022mes=12# retorna três dataframesdf_cpf_traduzido,df_cpf_modalidade,df_cpf_resumo_lista_das_operacoes=scr.get_cpf_data(cpf,ano,mes)Noteneoscrwill save each request made into.neoscrfolder located at
your home directory.For the example above, the saved file will be:~/.neoscr/86716804609_2022_12.jsonNext time you do the same request, it will load from the local
storage.cnpj="79.322.561/0001-67"# fake cnpjano=2022mes=12# retorna três dataframesdf_cnpj_traduzido,df_cnpj_modalidade,df_cnpj_resumo_lista_das_operacoes=scr.get_cnpj_data(cnpj,ano,mes)Batch QueryExecute the code below to query a list of cpfs or cnpjs (under
modification) and download the dataCautionPlease don’t just copy and execute the code above. Read it and adapt
it to your needs.importosimportloggingimportpandasaspdfromtqdmimporttqdmfromneoscr.utilsimportlet_only_digits# carregando a lista de cpfsdf=pd.read_csv("dataset.csv")lista_de_cpfs=df['cpf'].tolist()# instanciando o objeto ConsultaSCRscr=ConsultaSCR()# instanciando o objeto loggerlogger=logging.getLogger('database_updater')logger.setLevel(logging.DEBUG)# criando o file handlerfile_handler=logging.FileHandler('querylog.log')file_handler.setLevel(logging.DEBUG)# adicionando o file handler ao loggerlogger.addHandler(file_handler)# iterando sobre a lista de cpfs e enriquecendoano=2022mes=12forcpfintqdm(lista_de_cpfs):try:df_traduzido,df_modalidade,df_cnpj_resumo_lista_das_operacoes=scr.get_cpf_data(cpf,ano,mes)cpf_only_digits=let_only_digits(cpf)df_traduzido.to_csv(f"data/scr/raw/{cpf_only_digits}_traduzido.csv",index=False)df_modalidade.to_csv(f"data/scr/raw/{cpf_only_digits}_modalidade.csv",index=False)df_cnpj_resumo_lista_das_operacoes.to_csv(f"data/scr/raw/{cpf_only_digits}_resumo_lista_das_operacoes.csv",index=False)except:logger.error(f"Erro no CPF{cpf}")continueAfter download the data, you may want to get all the raw data together
in one big table:# carregandos os dados de todos os arquivos salvosdf_traduzido_full=pd.DataFrame()forfileinos.listdir("data/scr/raw/"):iffile.endswith("_traduzido.csv"):df_traduzido=pd.read_csv(f"data/scr/raw/{file}")df_traduzido_full=pd.concat([df_traduzido_full,df_traduzido])df_modalidade_full=pd.DataFrame()forfileinos.listdir(".data/scr/raw"):iffile.endswith("_modalidade.csv"):df_modalidade=pd.read_csv(f"data/scr/raw/{file}")df_modalidade_full=pd.concat([df_modalidade_full,df_modalidade])df_cnpj_resumo_lista_das_operacoes_full=pd.DataFrame()forfileinos.listdir("data/scr/raw/"):iffile.endswith("_resumo_lista_das_operacoes.csv"):df_cnpj_resumo_lista_das_operacoes=pd.read_csv(f"data/scr/raw/{file}")df_cnpj_resumo_lista_das_operacoes_full=pd.concat([df_cnpj_resumo_lista_das_operacoes_full,df_cnpj_resumo_lista_das_operacoes])