2

I'm trying to scrape this page in python, in order to get all that information in a table. But once this table is kinda different, the information I want, the one that comes after the 'Autor:', 'Situação', 'Última Ação', etc, does not come in separate td (HTML) like common tables, how to proceed then ?

This is what I've done so far, but the information come very messy:

from bs4 import BeautifulSoup
import requests

url = 'https://sapl.recife.pe.leg.br/generico/materia_pesquisar_proc?page=1&step=10&txt_relator=&txt_numero=&dt_public2=&lst_tip_autor=Parlamentar&txt_num_protocolo=&hdn_txt_autor=&txt_ano=&hdn_cod_autor=&lst_localizacao=&lst_tip_materia=10&txt_assunto=&btn_materia_pesquisar=Pesquisar&incluir=0&lst_cod_partido=&dt_apres2=&chk_coautor=0&txt_npc=&lst_status=&dt_public=&rd_ordenacao=1&rad_tramitando=&existe_ocorrencia=0&dt_apres='

source = requests.get(url).text

soup = BeautifulSoup(source, 'lxml')

lst = []
for item in soup.find_all('tr'):

    try:
        lst.append((item.text))
    except:
        pass

print(lst)
3
  • 1
    please show what u hav done Commented Jul 17, 2020 at 17:20
  • There it is, thank you Commented Jul 18, 2020 at 18:09
  • Can you specify what data/information that you want. It's a little bit confused. Commented Jul 19, 2020 at 5:14

1 Answer 1

1

check is this what u expecting

from bs4 import BeautifulSoup
import requests

url = 'https://sapl.recife.pe.leg.br/generico/materia_pesquisar_proc?page=1&step=10&txt_relator=&txt_numero=&dt_public2=&lst_tip_autor=Parlamentar&txt_num_protocolo=&hdn_txt_autor=&txt_ano=&hdn_cod_autor=&lst_localizacao=&lst_tip_materia=10&txt_assunto=&btn_materia_pesquisar=Pesquisar&incluir=0&lst_cod_partido=&dt_apres2=&chk_coautor=0&txt_npc=&lst_status=&dt_public=&rd_ordenacao=1&rad_tramitando=&existe_ocorrencia=0&dt_apres='

source = requests.get(url).text

soup = BeautifulSoup(source, features="html.parser")

lst = []
for item in soup.find_all('tr'):

    try:
        lst.append((item.text))
    except:
        pass

for i in range(len(lst)):
    lst[i]=lst[i].replace('\n\n','')
    # print(lst[i])
import  re
words=['Autor','Localização ']
import re
newl=[]
for i in lst:
    match0 = re.search(r'\b%s\b' % words[0], i)
    if match0:
        match1 = re.search(r'\b%s\b' % words[1], i)
        match2 = re.search(r'\b%s\b' % words[1], i)
        newl.append(i[match0.start():match1.start()].replace(" ", "").replace("\n",''))
        newl.append(i[match1.start():match2.start()])
        newl.append(i[match2.start():])
for i in newl:
    if i!='':
        print(i)

output

Autor:SamuelSalazar
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 13/07/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 14 À 28/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)    -  Em: 13/07/2020
Data Fim do Prazo:  28/07/2020
 Acompanhar matéria   TextoIntegral
Autor:RenatoAntunes
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 13/07/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 14 À 28/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)    -  Em: 13/07/2020
Data Fim do Prazo:  28/07/2020
 Acompanhar matéria   TextoIntegral
Autor:LuizEustáquio
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 06/07/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 07 À 18/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)   -  Em: 06/07/2020
Data Fim do Prazo:  18/07/2020
 Acompanhar matéria   TextoIntegral
Autor:LuizEustáquio
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 06/07/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 07 À 18/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)   -  Em: 06/07/2020
Data Fim do Prazo:  18/07/2020
 Acompanhar matéria   TextoIntegral
Autor:FredFerreira
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 30/06/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 01 À 14/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)  -  Em: 30/06/2020
Data Fim do Prazo:  14/07/2020
 Acompanhar matéria   TextoIntegral
Autor:SamuelSalazar
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 30/06/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 01 À 14/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)  -  Em: 30/06/2020
Data Fim do Prazo:  14/07/2020
 Acompanhar matéria   TextoIntegral
Autor:MicheleCollins
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 29/06/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 30/06 À 13/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)  -  Em: 29/06/2020
Data Fim do Prazo:  13/07/2020
 Acompanhar matéria   TextoIntegral
Autor:MicheleCollins
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 29/06/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 30/06 À 13/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)  -  Em: 29/06/2020
Data Fim do Prazo:  13/07/2020
 Acompanhar matéria   TextoIntegral
Autor:MicheleCollins
Localização Atual: COMISSÕES
Situação: AGUARDANDO EMENDAS(PRAZO REGIMENTAL)
Última Ação: APRESENTADO NO EXPEDIENTE DA REUNIÃO REMOTA REALIZADA EM 29/06/2020. DISTRIBUÍDO PARA COMISSÕES COMPETENTES PARA ANÁLISE E EMISSÃO DOS PARECERES. PRAZO PARA RECEBIMENTO DE EMENDAS DE 30/06 À 13/07/2020. (VER COMISSÕES NO DESPACHO INICIAL)  -  Em: 29/06/2020
Data Fim do Prazo:  13/07/2020
 Acompanhar matéria   TextoIntegral
Sign up to request clarification or add additional context in comments.

2 Comments

It's almost this, I want a table where the columns are "localização atual, autor, ultima ação, etc" and that information is stored in it. Is there a way to break each item of this output that way?
u can now extract the data u needed

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.