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)
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)
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)
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)
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)
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
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)
def insert_parlamentar(info): id_parlamentar = info.find('codigoparlamentar').text nome = info.find('nomeparlamentar').text info = (id_parlamentar, nome, 'SF') insert('parlamentar', info)
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)
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()))