def main(): hoje = datetime.strftime(datetime.now(), '%Y-%m-%d') DATA_DIR = f'data_{hoje}' urlretrieve(url, f'{DATA_DIR}/documento_andamento_atual.zip') zip_file = ZipFile(f'{DATA_DIR}/documento_andamento_atual.zip', 'r') zip_file.extractall(f'{DATA_DIR}') zip_file.close() os.remove(f'{DATA_DIR}/documento_andamento_atual.zip') xml_data = f'{DATA_DIR}/documento_andamento_atual.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[[ 'IdDocumento', 'Data', 'NrOrdem', 'Descricao', 'IdTpAndamento', 'TpAndamento', 'IdEtapa', 'NmEtapa', 'IdComissao', 'SiglaComissao' ]] dataset = dataset.rename( columns={ 'IdDocumento': 'id_documento', 'Data': 'dt_tramitacao', 'NrOrdem': 'nr_ordem', 'Descricao': 'ds_andamento', 'IdTpAndamento': 'id_tp_andamento', 'TpAndamento': 'tp_andamento', 'IdEtapa': 'id_etapa', 'NmEtapa': 'nm_etapa', 'IdComissao': 'id_comissao', 'SiglaComissao': 'sg_comissao' }) dataset['ds_andamento'] = dataset['ds_andamento'].apply(remove_break_line) save_files(dataset, 'documentos_tramitacao') os.remove(xml_data)
def main(): hoje = datetime.strftime(datetime.now(), '%Y-%m-%d') DATA_DIR = f'data_{hoje}' urlretrieve(url, f'{DATA_DIR}/proposituras.zip') zip_file = ZipFile(f'{DATA_DIR}/proposituras.zip', 'r') zip_file.extractall(f'{DATA_DIR}') zip_file.close() os.remove(f'{DATA_DIR}/proposituras.zip') xml_data = f'{DATA_DIR}/proposituras.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[[ 'AnoLegislativo', 'CodOriginalidade', 'Ementa', 'DtEntradaSistema', 'DtPublicacao', 'IdDocumento', 'IdNatureza', 'NroLegislativo' ]] dataset = dataset.rename(columns={ 'IdDocumento': 'id_documento', 'CodOriginalidade': 'cd_originalidade', 'AnoLegislativo': 'tx_ano_legislativo', 'DtEntradaSistema': 'dt_apresentacao', 'DtPublicacao': 'dt_publicacao', 'IdNatureza': 'id_natureza', 'NroLegislativo': 'nr_legislativo', 'Ementa': 'tx_ementa' }) save_files(dataset, 'documentos') os.remove(xml_data)
def main(): hoje = datetime.strftime(datetime.now(), '%Y-%m-%d') DATA_DIR = f'data_{hoje}' urlretrieve(url, f'{DATA_DIR}/legislacao_norma_anotacoes.zip') zip_file = ZipFile(f'{DATA_DIR}/legislacao_norma_anotacoes.zip', 'r') zip_file.extractall(f'{DATA_DIR}') zip_file.close() os.remove(f'{DATA_DIR}/legislacao_norma_anotacoes.zip') xml_data = f'{DATA_DIR}/legislacao_norma_anotacoes.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[[ 'IdNorma', 'NumNormaRel', 'DataNormaRel', 'TipoNormaRel', 'DsRel', 'DsOrigem', 'IdTipoRel', 'NumComplNormaRel' ]] dataset = dataset.rename(columns={ 'IdNorma': 'id_norma', 'NumNormaRel': 'nr_norma_relacionada', 'DataNormaRel': 'dt_norma_relacionada', 'TipoNormaRel': 'tp_norma_relacionada', 'DsRel': 'ds_anotacao', 'DsOrigem': 'ds_origem', 'IdTipoRel': 'id_tp_relacionada', 'NumComplNormaRel': 'nr_complemento_norma_relacionada' }) dataset['ds_anotacao'] = dataset['ds_anotacao'].apply(remove_break_line) save_files(dataset, 'legislacao_anotacoes') os.remove(xml_data)
def process_deputados(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'NomeParlamentar', 'Matricula', 'IdDeputado', 'IdSPL', 'IdUA', 'Partido', 'Sala', 'Andar', 'Telefone', 'Email', 'PlacaVeiculo', 'Aniversario', 'Situacao' ]] dataset = dataset.rename( columns={ 'NomeParlamentar': 'nm_deputado', 'Matricula': 'nr_matricula', 'IdDeputado': 'id_deputado', 'IdSPL': 'id_spl', 'IdUA': 'id_unid_admin', 'Partido': 'sg_partido', 'Sala': 'sala', 'Andar': 'andar', 'Telefone': 'telefone', 'Email': 'email', 'PlacaVeiculo': 'placa_carro', 'Aniversario': 'aniversario', 'Situacao': 'status' }) save_files(dataset, 'data', 'indice_deputados')
def process_partidos(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['Numero', 'Sigla', 'Nome']] dataset = dataset.rename(columns={ 'Numero': 'nr_partido', 'Sigla': 'sg_partido', 'Nome': 'nm_partido' }) save_files(dataset, 'data', 'indice_partidos')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdTipoParcer', 'TipoParecer']] dataset = dataset.rename(columns={ 'IdTipoParcer': 'id_tp_parecer', 'TipoParecer': 'tp_parecer' }) save_files(dataset, 'documentos_pareceres_tp_indice')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdSubTema', 'SubTema']] dataset = dataset.rename(columns={ 'IdSubTema': 'id_subtema', 'SubTema': 'ds_subtema' }) save_files(dataset, 'legislacao_subtemas_indice')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdTipo', 'DsTipo']] dataset = dataset.rename(columns={ 'IdTipo': 'id_tp_norma', 'DsTipo': 'ds_tp_norma' }) save_files(dataset, 'legislacao_tipos_indice')
def process_proposicoes_palavras(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdPalavra', 'Palavra', 'PalavraSemAcento']] dataset = dataset.rename(columns={ 'IdPalavra': 'id_palavra', 'Palavra': 'termo', 'PalavraSemAcento': 'termo_sem_acento' }) save_files(dataset, 'data', 'indice_proposicoes_palavras-chave')
def process_proposicoes_palavras(): xml_data = 'data/documento_palavras.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[['IdDocumento', 'IdPalavra']] dataset = dataset.rename(columns={ 'IdDocumento': 'id_proposicao', 'IdPalavra': 'id_palavra' }) save_files(dataset, 'data', 'proposicoes_palavras') os.remove(xml_data)
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdDeputado', 'IdArea', 'NrOrdem']] dataset = dataset.rename(columns={ 'IdDeputado': 'id_deputado', 'IdArea': 'id_area', 'NrOrdem': 'nr_ordem' }) save_files(dataset, 'deputados_area_atuacao')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdDeputado', 'IdBaseEleitoral', 'NrOrdem']] dataset = dataset.rename( columns={ 'IdDeputado': 'id_deputado', 'IdBaseEleitoral': 'id_base', 'NrOrdem': 'nr_ordem' }) save_files(dataset, 'deputados_bases_eleitorais')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['IdPalavra', 'Palavra', 'PalavraSemAcento']] dataset = dataset.rename( columns={ 'IdPalavra': 'id_palavra', 'Palavra': 'tx_termo', 'PalavraSemAcento': 'tx_termo_sem_acento' }) save_files(dataset, 'documentos_palavraschave_indice')
def process_servidores_lotacoes_historico(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'NomeFuncionario', 'NomeUA', 'IdUA', 'DataInicio', 'DataFim' ]] dataset = dataset.rename(columns={ 'NomeFuncionario': 'nm_funcionario', 'NomeUA': 'nm_unid_admin', 'IdUA': 'id_unid_admin', 'DataInicio': 'dt_inicio', 'DataFim': 'dt_fim' }) save_files(dataset, 'data', 'servidores_lotacoes_historico')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['idNatureza', 'nmNatureza', 'sgNatureza', 'tpNatureza']] dataset = dataset.rename(columns={ 'idNatureza': 'id_natureza', 'nmNatureza': 'nm_natureza', 'sgNatureza': 'sg_natureza', 'tpNatureza': 'tp_natureza' }) save_files(dataset, 'documentos_naturezas_indice')
def process_proposicoes_autores(): xml_data = 'data/documento_autor.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[['IdAutor', 'IdDocumento', 'NomeAutor']] dataset = dataset.rename( columns={ 'IdDocumento': 'id_proposicao', 'IdAutor': 'id_autor', 'NomeAutor': 'nm_autor' }) save_files(dataset, 'data', 'indice_proposicoes_autores') os.remove(xml_data)
def process_proposicoes_natureza(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[['idNatureza', 'nmNatureza', 'sgNatureza', 'tpNatureza']] dataset = dataset.rename( columns={ 'idNatureza': 'id_natureza', 'nmNatureza': 'nm_natureza', 'sgNatureza': 'sg_natureza', 'tpNatureza': 'tp_natureza' }) save_files(dataset, 'data', 'indice_proposicoes_natureza')
def process_comissoes_deliberacoes(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'IdReuniao', 'IdDocumento', 'IdPauta', 'NrOrdem', 'DataInclusao', 'DataSaida', 'Deliberacao', 'IdDeliberacao' ]] dataset = dataset.rename(columns={ 'IdReuniao': 'id_reuniao', 'IdDocumento': 'id_documento', 'IdPauta': 'id_pauta', 'NrOrdem': 'nr_ordem', 'DataInclusao': 'dt_inclusao', 'DataSaida': 'dt_saida', 'Deliberacao': 'deliberacao', 'IdDeliberacao': 'id_deliberacao' }) save_files(dataset, 'data', 'comissoes_deliberacoes')
def process_comissoes_membros(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'SiglaComissao', 'IdComissao', 'NomeMembro', 'IdMembro', 'Papel', 'IdPapel', 'Efetivo', 'DataInicio', 'DataFim' ]] dataset = dataset.rename(columns={ 'SiglaComissao': 'sg_comissao', 'IdComissao': 'id_comissao', 'NomeMembro': 'nm_membro', 'IdMembro': 'id_membro', 'Papel': 'ds_papel', 'IdPapel': 'id_papel', 'Efetivo': 'efetivo', 'DataInicio': 'dt_inicio', 'DataFim': 'dt_fim' }) save_files(dataset, 'data', 'comissoes_membros')
def process_servidores_cargos(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'NomeFuncionario', 'NomeCargo', 'IdCargo', 'NomeRegime', 'IdRegime', 'DataInicio', 'DataFim' ]] dataset = dataset.rename(columns={ 'NomeFuncionario': 'nm_funcionario', 'NomeCargo': 'nm_cargo', 'IdCargo': 'id_cargo', 'NomeRegime': 'nm_regime', 'IdRegime': 'id_regime', 'DataInicio': 'dt_inicio', 'DataFim': 'dt_fim' }) save_files(dataset, 'data', 'servidores_cargos')
def process_deputados_gastos_cota(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'Deputado', 'Matricula', 'Ano', 'Mes', 'Tipo', 'Fornecedor', 'CNPJ', 'Valor' ]] dataset = dataset.rename(columns={ 'Deputado': 'nm_deputado', 'Matricula': 'nr_matricula', 'Ano': 'ano', 'Mes': 'mes', 'Tipo': 'tp_categoria', 'Fornecedor': 'nm_fornecedor', 'CNPJ': 'nr_cnpj', 'Valor': 'valor' }) clean_expenses_categories(dataset) save_files(dataset, 'data', 'deputados_gastos_cota')
def main(): cols = [ 'nm_funcionario', 'ano', 'mes', 'vlr_bruto', 'vlr_liquido', 'tributos', 'abono_permanencia', 'ferias_bruto', 'ferias_liquido', 'ferias_desconto', '13_bruto', '13_liquido', '13_desconto', 'retroativo_bruto', 'retroativo_liquido', 'retroativo_desconto', 'outros_bruto', 'outros_desconto', 'indenizacao' ] ano_atual = datetime.now().year for ano in range(2014, ano_atual + 1): for mes in range(1, 13): mes = format(mes, '02d') url_base = 'https://www.al.sp.gov.br/repositorio/' url_file = f'folha-de-pagamento/folha-{ano}-{mes}-detalhada.html' url = url_base + url_file data = req.get(url).content soup = BeautifulSoup(data, 'html.parser') with open('temp.csv', 'a') as file: dw = csv.DictWriter(file, fieldnames=cols, lineterminator='\n') dw.writeheader() for tr in soup.find_all('tr')[1:]: tds = tr.find_all('td') dw.writerow({ 'nm_funcionario': tds[0].get_text().strip(), 'ano': ano, 'mes': mes, 'vlr_bruto': sanitize_float(tds[1]), 'vlr_liquido': sanitize_float(tds[2]), 'tributos': sanitize_float(tds[3]), 'abono_permanencia': sanitize_float(tds[4]), 'ferias_bruto': sanitize_float(tds[5]), 'ferias_desconto': sanitize_float(tds[6]), 'ferias_liquido': sanitize_float(tds[7]), '13_bruto': sanitize_float(tds[8]), '13_desconto': sanitize_float(tds[9]), '13_liquido': sanitize_float(tds[10]), 'retroativo_bruto': sanitize_float(tds[11]), 'retroativo_desconto': sanitize_float(tds[12]), 'retroativo_liquido': sanitize_float(tds[13]), 'outros_bruto': sanitize_float(tds[14]), 'outros_desconto': sanitize_float(tds[15]), 'indenizacao': sanitize_float(tds[16]) }) dataset = pd.read_csv('temp.csv') save_files(dataset, 'servidores_salarios') os.remove('temp.csv')
def process_comissoes(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'IdComissao', 'NomeComissao', 'SiglaComissao', 'DescricaoComissao', 'DataFimComissao' ]] dataset = dataset.rename( columns={ 'IdComissao': 'id_comissao', 'NomeComissao': 'nm_comissao', 'SiglaComissao': 'sg_comissao', 'DescricaoComissao': 'ds_comissao', 'DataFimComissao': 'dt_fim_comissao', }) save_files(dataset, 'data', 'indice_comissoes')
def process_proposicoes(): xml_data = 'data/proposituras.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[[ 'AnoLegislativo', 'CodOriginalidade', 'Ementa', 'DtEntradaSistema', 'DtPublicacao', 'IdDocumento', 'IdNatureza', 'NroLegislativo' ]] dataset = dataset.rename(columns={ 'IdDocumento': 'id_proposicao', 'CodOriginalidade': 'cd_originalidade', 'AnoLegislativo': 'ano_legislativo', 'DtEntradaSistema': 'dt_apresentacao', 'DtPublicacao': 'dt_publicacao', 'IdNatureza': 'natureza', 'NroLegislativo': 'nr_legislativo', 'Ementa': 'ementa' }) save_files(dataset, 'data', 'proposicoes') os.remove(xml_data)
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'IdReuniao', 'IdPauta', 'IdComissao', 'IdDocumento', 'IdDeputado', 'Deputado', 'TipoVoto', 'Voto' ]] dataset = dataset.rename(columns={ 'IdReuniao': 'id_reuniao', 'IdPauta': 'id_pauta', 'IdComissao': 'id_comissao', 'IdDocumento': 'id_documento', 'IdDeputado': 'id_deputado', 'Deputado': 'nm_deputado', 'TipoVoto': 'tp_voto', 'Voto': 'ds_voto' }) save_files(dataset, 'comissoes_votacoes')
def main(): xml_data = req.get(url).content dataset = xml_df(xml_data).process_data() dataset = dataset[[ 'NomeFuncionario', 'NomeCargo', 'IdCargo', 'NomeRegime', 'IdRegime', 'NomeUA', 'IdUA' ]] dataset = dataset.rename( columns={ 'NomeFuncionario': 'nm_funcionario', 'NomeCargo': 'nm_cargo', 'IdCargo': 'id_cargo', 'NomeRegime': 'nm_regime', 'IdRegime': 'id_regime', 'NomeUA': 'nm_unid_admin', 'IdUA': 'id_unid_admin' }) save_files(dataset, 'servidores_lotacao_atual')
def main(): hoje = datetime.strftime(datetime.now(), '%Y-%m-%d') DATA_DIR = f'data_{hoje}' urlretrieve(url, f'{DATA_DIR}/documento_palavras.zip') zip_file = ZipFile(f'{DATA_DIR}/documento_palavras.zip', 'r') zip_file.extractall(f'{DATA_DIR}') zip_file.close() os.remove(f'{DATA_DIR}/documento_palavras.zip') xml_data = f'{DATA_DIR}/documento_palavras.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[['IdDocumento', 'IdPalavra']] dataset = dataset.rename(columns={ 'IdDocumento': 'id_documento', 'IdPalavra': 'id_palavra' }) save_files(dataset, 'documentos_palavras') os.remove(xml_data)
def main(): hoje = datetime.strftime(datetime.now(), '%Y-%m-%d') DATA_DIR = f'data_{hoje}' urlretrieve(url, f'{DATA_DIR}/legislacao_normas.zip') zip_file = ZipFile(f'{DATA_DIR}/legislacao_normas.zip', 'r') zip_file.extractall(f'{DATA_DIR}') zip_file.close() os.remove(f'{DATA_DIR}/legislacao_normas.zip') xml_data = f'{DATA_DIR}/legislacao_normas.xml' dataset = xml_df_internal(xml_data).process_data() dataset = dataset[[ 'IdNorma', 'Numero', 'Ano', 'IdTipo', 'Data', 'Situacao', 'Ementa', 'Autores', 'CadDO', 'PagDO', 'DataDO', 'URLDO', 'URLFicha', 'URLIntegra', 'URLCompilado', 'Promulg', 'Ambito' ]] dataset = dataset.rename( columns={ 'IdNorma': 'id_norma', 'Numero': 'nr_norma', 'Ano': 'tx_ano', 'IdTipo': 'id_tp_norma', 'Data': 'dt_norma', 'Situacao': 'tx_situacao', 'Ementa': 'tx_ementa', 'Autores': 'tx_autores', 'CadDO': 'nr_caderno_do', 'PagDO': 'nr_pagina_do', 'DataDO': 'dt_publicacao_do', 'URLDO': 'url_do', 'URLFicha': 'url_ficha', 'URLIntegra': 'url_integra', 'URLCompilado': 'url_compilado', 'Promulg': 'tx_promulg', 'Ambito': 'tx_ambito' }) dataset['tx_ementa'] = dataset['tx_ementa'].apply(remove_break_line) save_files(dataset, 'legislacao_normas') os.remove(xml_data)