Reputation: 39
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)
Upvotes: 2
Views: 98
Reputation: 723
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
Upvotes: 1