Пример #1
0
def deps():
    url_base = 'http://agencia.tse.jus.br/estatistica/sead/odsele/consulta_cand/'
    arquivos = ['consulta_cand_2014', 'consulta_cand_2018']

    with open(f'{DATA_DIR}/candidato_deputados.csv',
              'a',
              newline='',
              encoding='latin-1') as infile:
        writer = csv.writer(infile, delimiter=';')

        for arquivo in arquivos:
            url = url_base + arquivo + '.zip'
            urlretrieve(url, f'{DATA_DIR}/{arquivo}.zip')
            with ZipFile(f'{DATA_DIR}/{arquivo}.zip', 'r') as zip_file:
                zip_file.extract(f'{arquivo}_SP.csv', path=f'{DATA_DIR}')
            os.remove(f'{DATA_DIR}/{arquivo}.zip')

            with open(f'{DATA_DIR}/{arquivo}_SP.csv', 'r',
                      encoding='latin-1') as original:
                reader = csv.reader(original, delimiter=';')
                next(reader, None)
                for row in reader:
                    writer.writerow(row)
            os.remove(f'{DATA_DIR}/{arquivo}_SP.csv')

    dataset = pd.read_csv(f'{DATA_DIR}/candidato_deputados.csv',
                          header=0,
                          names=cols_cands,
                          encoding='latin-1',
                          sep=';')
    dataset = dataset[dataset['ds_cargo'] == 'DEPUTADO ESTADUAL']
    dataset.drop(columns=drop_cols_cands, inplace=True)
    save(dataset, 'cand')
    os.remove(f'{DATA_DIR}/candidato_deputados.csv')
Пример #2
0
def partido():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/partidos.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['Numero', 'Sigla', 'Nome']]
    dataset = dataset.rename(columns=cols_partido)
    save(dataset, 'dep_partidos_indice')
Пример #3
0
def pareceres_tp():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/tipo_parecer.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdTipoParcer', 'TipoParecer']]
    dataset = dataset.rename(columns=cols_pareceres_tp)
    save(dataset, 'doc_pareceres_tp_indice')
Пример #4
0
def base():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/deputado_base_eleitoral.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdDeputado', 'IdBaseEleitoral', 'NrOrdem']]
    dataset = dataset.rename(columns=cols_base)
    save(dataset, 'dep_bases')
Пример #5
0
def subtemas():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/legislacao/'
    url_file = 'legislacao_subtemas.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdSubTema', 'SubTema']]
    dataset = dataset.rename(columns=cols_subtemas)
    save(dataset, 'leg_subtemas_indice')
Пример #6
0
def tipos():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/legislacao/'
    url_file = 'legislacao_tipo_normas.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdTipo', 'DsTipo']]
    dataset = dataset.rename(columns=cols_tipos)
    save(dataset, 'leg_tipos_indice')
Пример #7
0
def area():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/deputado_area_atuacao.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdDeputado', 'IdArea', 'NrOrdem']]
    dataset = dataset.rename(columns=cols_area)
    save(dataset, 'dep_areas')
Пример #8
0
def naturezas():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/naturezasSpl.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['idNatureza', 'nmNatureza', 'sgNatureza', 'tpNatureza']]
    dataset = dataset.rename(columns=cols_naturezas)
    save(dataset, 'doc_naturezas_indice')
Пример #9
0
def base_indice():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/bases_eleitorais.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['Id', 'Nome']]
    dataset = dataset.rename(columns={'Id': 'id_base', 'Nome': 'nm_base'})
    save(dataset, 'dep_bases_indice')
Пример #10
0
def palavras_chave():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/palavras_chave.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[['IdPalavra', 'Palavra', 'PalavraSemAcento']]
    dataset = dataset.rename(columns=cols_pal_chave)
    save(dataset, 'doc_palavras_indice')
Пример #11
0
def lotacao_historico():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/administracao/'
    url_file = 'funcionarios_lotacoes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'NomeFuncionario', 'NomeUA', 'IdUA', 'DataInicio', 'DataFim'
    ]]
    dataset = dataset.rename(columns=cols_lot_hist)
    save(dataset, 'serv_lotacao_historico')
Пример #12
0
def coms():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/comissoes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'IdComissao', 'NomeComissao', 'SiglaComissao', 'DescricaoComissao',
        'DataFimComissao'
    ]]
    dataset = dataset.rename(columns=cols_com)
    save(dataset, 'com')
Пример #13
0
def lotacao_atual():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/administracao/'
    url_file = 'lotacoes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'NomeFuncionario', 'NomeCargo', 'IdCargo',
        'NomeRegime', 'IdRegime', 'NomeUA', 'IdUA'
    ]]
    dataset = dataset.rename(columns=cols_lot_atual)
    save(dataset, 'serv_lotacao_atual')
Пример #14
0
def servs():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/administracao/'
    url_file = 'funcionarios_cargos.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'NomeFuncionario', 'NomeCargo', 'IdCargo', 'NomeRegime',
        'IdRegime', 'DataInicio', 'DataFim'
    ]]
    dataset = dataset.rename(columns=cols_servs)
    save(dataset, 'serv')
Пример #15
0
def votacoes():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/comissoes_permanentes_votacoes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'IdReuniao', 'IdPauta', 'IdComissao', 'IdDocumento', 'IdDeputado',
        'Deputado', 'TipoVoto', 'Voto'
    ]]
    dataset = dataset.rename(columns=cols_voto)
    save(dataset, 'com_votacoes')
Пример #16
0
def reunioes():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/comissoes_permanentes_reunioes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'IdReuniao', 'IdComissao', 'IdPauta', 'NrLegislatura', 'NrConvocacao',
        'TipoConvocacao', 'Data', 'CodSituacao', 'Situacao', 'Presidente'
    ]]
    dataset = dataset.rename(columns=cols_reun)
    save(remove_dep(dataset), 'com_reunioes')
Пример #17
0
def membros():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/comissoes_membros.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'SiglaComissao', 'IdComissao', 'NomeMembro', 'IdMembro', 'Papel',
        'IdPapel', 'Efetivo', 'DataInicio', 'DataFim'
    ]]
    dataset = dataset.rename(columns=cols_membros)
    save(dataset, 'com_membros')
Пример #18
0
def deliberacoes():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'processo_legislativo/comissoes_permanentes_deliberacoes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'IdReuniao', 'IdDocumento', 'IdPauta', 'NrOrdem', 'DataInclusao',
        'DataSaida', 'Deliberacao', 'IdDeliberacao'
    ]]
    dataset = dataset.rename(columns=cols_delib)
    save(dataset, 'com_deliberacoes')
Пример #19
0
def deps():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/deputados.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'NomeParlamentar', 'Matricula', 'IdDeputado', 'IdSPL', 'IdUA',
        'Partido', 'Sala', 'Andar', 'Telefone', 'Email', 'PlacaVeiculo',
        'Aniversario', 'Situacao'
    ]]
    dataset = dataset.rename(columns=cols_deps)
    save(dataset, 'dep')
Пример #20
0
def gasto():
    url_base = 'https://www.al.sp.gov.br/repositorioDados/'
    url_file = 'deputados/despesas_gabinetes.xml'
    url = url_base + url_file
    xml_data = req.get(url).content

    dataset = ParseXmlRemote(xml_data).process_data()
    dataset = dataset[[
        'Deputado', 'Matricula', 'Ano', 'Mes', 'Tipo', 'Fornecedor', 'CNPJ',
        'Valor'
    ]]
    dataset = dataset.rename(columns=cols_gastos)
    dataset['tp_categoria'].replace(dict_gasto, inplace=True)
    save(dataset, 'dep_gastos_cota')
Пример #21
0
def palavras():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/processo_legislativo/'
    arquivo_zip = 'documento_palavras.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'documento_palavras.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[['IdDocumento', 'IdPalavra']]
    dataset = dataset.rename(columns=cols_palavras)
    save(dataset, 'doc_palavras')
    os.remove(xml_data)
Пример #22
0
def bens():
    url_base = 'http://agencia.tse.jus.br/estatistica/sead/odsele/bem_candidato/'
    arquivos = ['bem_candidato_2014', 'bem_candidato_2018']

    with open(f'{DATA_DIR}/candidato_bem.csv',
              'a',
              newline='',
              encoding='latin-1') as infile:
        writer = csv.writer(infile, delimiter=';')

        for arquivo in arquivos:
            url = url_base + arquivo + '.zip'
            urlretrieve(url, f'{DATA_DIR}/{arquivo}.zip')
            with ZipFile(f'{DATA_DIR}/{arquivo}.zip', 'r') as zip_file:
                zip_file.extract(f'{arquivo}_SP.csv', path=f'{DATA_DIR}')
            os.remove(f'{DATA_DIR}/{arquivo}.zip')

            with open(f'{DATA_DIR}/{arquivo}_SP.csv', 'r',
                      encoding='latin-1') as original:
                reader = csv.reader(original, delimiter=';')
                next(reader, None)
                for row in reader:
                    writer.writerow(row)
            os.remove(f'{DATA_DIR}/{arquivo}_SP.csv')

    bens = pd.read_csv(f'{DATA_DIR}/candidato_bem.csv',
                       header=0,
                       names=cols_bens,
                       encoding='latin-1',
                       sep=';',
                       decimal=',')
    cands = pd.read_csv(f'{DATA_DIR}/cand.csv')
    dataset = cands.merge(bens, on='sq_candidato', how='left')
    dataset['vlr_bem'].fillna(0.0, inplace=True)
    dataset.drop(columns=drop_cols_bens, inplace=True)
    dataset = dataset[[
        'dt_geracao_x', 'hh_geracao_x', 'ano_eleicao_x', 'nm_tipo_eleicao_x',
        'ds_eleicao_x', 'dt_eleicao_x', 'sg_ue_x', 'nm_ue_x', 'sq_candidato',
        'nr_candidato', 'nm_candidato', 'nm_urna_candidato',
        'nm_social_candidato', 'nr_cpf_candidato', 'ds_tp_bem', 'ds_bem',
        'vlr_bem'
    ]]
    dataset.columns = dataset.columns.str.replace('_x', '')

    save(dataset, 'cand_bens')
    os.remove(f'{DATA_DIR}/candidato_bem.csv')
Пример #23
0
def tramitacao_regime():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/processo_legislativo/'
    arquivo_zip = 'documento_regime.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'documento_regime.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[[
        'IdDocumento', 'IdRegime', 'NomeRegime', 'DataInicio', 'DataFim'
    ]]
    dataset = dataset.rename(columns=cols_tramit_regime)
    save(dataset, 'doc_tramitacao_regime')
    os.remove(xml_data)
Пример #24
0
def anotacoes():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/legislacao/'
    arquivo_zip = 'legislacao_norma_anotacoes.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'legislacao_norma_anotacoes.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[[
        'IdNorma', 'NumNormaRel', 'DataNormaRel', 'TipoNormaRel', 'DsRel',
        'DsOrigem', 'IdTipoRel', 'NumComplNormaRel'
    ]]
    dataset = dataset.rename(columns=cols_anota)
    save(dataset, 'leg_anotacoes')
    os.remove(xml_data)
Пример #25
0
def docs():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/processo_legislativo/'
    arquivo_zip = 'proposituras.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'proposituras.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[[
        'AnoLegislativo', 'CodOriginalidade', 'Ementa', 'DtEntradaSistema',
        'DtPublicacao', 'IdDocumento', 'IdNatureza', 'NroLegislativo'
    ]]
    dataset = dataset.rename(columns=cols_docs)
    save(dataset, 'doc')
    os.remove(xml_data)
Пример #26
0
def andamento_atual():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/processo_legislativo/'
    arquivo_zip = 'documento_andamento_atual.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'documento_andamento_atual.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[[
        'IdDocumento', 'Data', 'NrOrdem', 'Descricao', 'IdTpAndamento',
        'TpAndamento', 'IdEtapa', 'NmEtapa', 'IdComissao', 'SiglaComissao'
    ]]
    dataset = dataset.rename(columns=cols_andam_atual)
    dataset['ds_andamento'] = dataset['ds_andamento'].apply(remove_break_line)
    save(dataset, 'doc_andamento')
    os.remove(xml_data)
Пример #27
0
def salarios():
    with open('temp.csv', 'a') as file:
        dw = csv.DictWriter(file,
                            fieldnames=cols_salarios,
                            lineterminator='\n')
        dw.writeheader()
        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')
                for tr in soup.find_all('tr')[1:]:
                    tds = tr.find_all('td')
                    dw.writerow({'nm_funcionario': tds[0].get_text().strip(),
                                 'ano': int(ano),
                                 'mes': int(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(dataset, 'serv_salarios')
    os.remove('temp.csv')
Пример #28
0
def pareceres():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/processo_legislativo/'
    arquivo_zip = 'propositura_parecer.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'propositura_parecer.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(xml_data).process_data()
    dataset = dataset[[
        'AnoParecer', 'Descricao', 'Data', 'AdReferendum', 'RelatorEspecial',
        'VotoVencido', 'IdComissao', 'IdDocumento', 'IdParecer',
        'IdTipoParecer', 'TipoParecer', 'NrParecer', 'SiglaComissao',
        'TpParecer', 'URL'
    ]]
    dataset = dataset.rename(columns=cols_pareceres)
    save(dataset, 'doc_pareceres')
    os.remove(xml_data)
Пример #29
0
def legs():
    url_base = 'http://www.al.sp.gov.br/repositorioDados/legislacao/'
    arquivo_zip = 'legislacao_normas.zip'
    url = url_base + arquivo_zip

    arquivo_xml = 'legislacao_normas.xml'

    fetch_zip(url, arquivo_zip)
    xml_data = f'{DATA_DIR}/{arquivo_xml}'

    dataset = ParseXml(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=cols_legs)
    dataset['tx_ementa'] = dataset['tx_ementa'].apply(remove_break_line)
    save(dataset, 'leg')
    os.remove(xml_data)