示例#1
0
def insert_autor(id_materia, materia):
    for autor in materia.find_all('autorprincipal'):
        nome_autor = get_text_alt(autor, 'nomeautor')
        tipo_autor = autor.find('siglatipoautor').text
        parlamentar = get_text_alt(autor, 'codigoparlamentar')
        autor = (tipo_autor, id_materia, nome_autor, parlamentar)
        insert('autoria', autor)
示例#2
0
def insert_filiacao(lista_filiacoes):
    for filiacoes in lista_filiacoes:
        # print(filiacoes)
        parlamentar = filiacoes.find('codigoparlamentar').text

        for filiacao in filiacoes.find_all('filiacao'):
            id_partido = filiacao.find('codigopartido').text
            data_filia = filiacao.find('datafiliacao').text
            data_desfilia = get_text_alt(filiacao, 'datadesfiliacao')
            info = (parlamentar, id_partido, data_filia, data_desfilia)
            insert('filiacao', info)
示例#3
0
def insert_partidos():
    URL = 'http://legis.senado.leg.br/dadosabertos/senador/partidos'
    req = requests.get(URL).text
    partidos = BeautifulSoup(req, 'lxml')
    for partido in partidos.find_all('partido'):
        id_partido = partido.find('codigo').text
        sigla = partido.find('sigla').text
        nome = partido.find('nome').text
        data_criacao = partido.find('datacriacao').text
        info = (id_partido, sigla, nome, data_criacao)

        insert('partido', info)
示例#4
0
def insert_mandatos(lista_mandatos):
    for mandatos in lista_mandatos:
        parlamentar = mandatos.find('codigoparlamentar').text
        for mandato in mandatos.find_all('mandato'):
            id_mandato = get_text_alt(mandato, 'codigomandato')
            participacao = get_text_alt(mandato, 'descricaoparticipacao')
            data_in = mandato.find('datainicio').text
            data_fim = mandato.find('datafim').text
            uf = mandato.find('ufparlamentar').text
            info = (parlamentar, id_mandato, participacao, data_in, data_fim,
                    uf)

            insert('mandato', info)
示例#5
0
def insert_votacao(listas_votacoes):
    for votacoes in listas_votacoes:
        for votacao in votacoes.find_all('votacao'):
            id_votacao = votacao.find('codigosessaovotacao').text
            id_materia = get_text_alt(votacao, 'codigomateria')
            resultado = get_text_alt(votacao, 'resultado')
            dataHorainicio = '{} {}:00'.format(
                votacao.find('datasessao').text,
                votacao.find("horainicio").text)
            info = (id_votacao, id_materia, dataHorainicio, resultado)
            insert('votacao', info)
            insert('estatisticas_votacao', (id_votacao, ), 'id_votacao')
            if votacao.find('secreta').text == 'S':
                insert_votacao_secreta(id_votacao, votacao)

            for voto in votacao.find_all('votoparlamentar'):
                insert_voto(id_votacao, voto)
                insert_parlamentar(voto)
示例#6
0
def insert_materias(lista_materias):
    for materias in lista_materias:
        for materia in materias.find_all('materia'):
            id_materia = materia.find('codigomateria').text
            tipo = materia.find('siglasubtipomateria').text
            numero = materia.find('numeromateria').text
            data_apresentacao = materia.find('dataapresentacao').text
            natureza = get_text_alt(materia, 'nomenatureza')
            info = (id_materia, tipo, numero, data_apresentacao, natureza)

            insert('materia', info,
                   'id_materia, tipo, numero, data_apresentacao, natureza')

            insert_autor(id_materia, materia)

            try:
                index = get_text_alt(materia, 'indexacaomateria')
                insert_index(id_materia, index)

            except TypeError:
                pass
示例#7
0
def insert_votacao_secreta(id_votacao, votacao):
    placar_sim = get_text_alt(votacao, 'totalvotossim')
    placar_nao = get_text_alt(votacao, 'totalvotosnao')
    placar_abs = get_text_alt(votacao, 'totalvotosabstencao')
    info = (id_votacao, placar_sim, placar_nao, placar_abs)
    insert('votacao_secreta', info)
示例#8
0
def insert_parlamentar(info):
    id_parlamentar = info.find('codigoparlamentar').text
    nome = info.find('nomeparlamentar').text
    info = (id_parlamentar, nome, 'SF')
    insert('parlamentar', info)
示例#9
0
def insert_voto(id_votacao, voto):
    id_parlamentar = voto.find('codigoparlamentar').text
    descricao = voto.find('voto').text
    voto = (id_parlamentar, id_votacao, descricao)
    insert('voto', voto)
示例#10
0
def insert_index(id_materia, index):
    p = re.compile(r'[^\w, ]')
    index = p.sub('', index).split(', ')
    for i in index:
        insert('index_materia', (id_materia, i.strip()))