我目前正在尝试从以下链接中抓取一些信息:
我想使用Python中的BeautifulSoup刮擦表中的某些信息。理想情况下,我想从表格中分别刮掉“ Groupo Parliamentario”,“ Titulo”,“ Sumilla”和“ Autores”作为单独的项目。
到目前为止,我已经使用BeautifulSoup开发了以下代码:
from bs4 import BeautifulSoup
import requests
import pandas as pd
url = 'http://www2.congreso.gob.pe/Sicr/TraDocEstProc/CLProLey2001.nsf/ee3e4953228bd84705256dcd008385e7/4ec9c3be3fc593e2052571c40071de75?OpenDocument'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
table = soup.find('table', {'bordercolor' : '#6583A0'})
contents = []
summary = []
authors = []
contents.append(table.findAll('font'))
authors.append(table.findAll('a'))
我正在苦苦挣扎的是,刮作者的代码只刮了列表中的第一位作者。理想情况下,我需要删除列表中的所有作者。这对我来说似乎很奇怪,因为在查看网页的html代码时,列表中的所有作者都带有'<a href = >'
标签。我认为table.findAll('a'))
会抓住列表中的所有作者。
最后,我只是将其余的非常混乱的html(标题,摘要,议会小组)全部转储到contents
下的一个长字符串中。我不确定是否遗漏了一些东西,我是html和webscraping的新手,但是是否有办法将这些项目拉出并单独存储(即:仅将标题存储在对象中,对象中的摘要等)。我很难确定要在网页代码中使用的唯一标签。还是在刮擦后我应该清洁和解析的东西?
答案 0 :(得分:1)
要获得作者,您可以使用:
soup.find('input', {'name': 'NomCongre'})['value']
输出:
'Santa María Calderón Luis,Alva Castro Luis,Armas Vela Carlos,Cabanillas Bustamante Mercedes,Carrasco Távara José,De la Mata Fernández Judith,De La Puente Haya Elvira,Del Castillo Gálvez Jorge,Delgado Nuñez Del Arco José,Gasco Bravo Luis,Gonzales Posada Eyzaguirre Luis,León Flores Rosa Marina,Noriega Toledo Víctor,Pastor Valdivieso Aurelio,Peralta Cruz Jonhy,Zumaeta Flores César'
抓取Grupo Parlamentario
table.find_all('td', {'width': 446})[1].text
输出:
'Célula Parlamentaria Aprista'
抓取Título
:
table.find_all('td', {'width': 446})[2].text
输出:
'IGV/SELECTIVO:D.L.821/LEY INTERPRETATIVA '
抓取Sumilla
:
table.find_all('td', {'width': 446})[3].text
输出:
' Propone la aprobación de una Ley Interpretativa del Texto Original del Numeral 1 del Apéndice II del Decreto Legislativo N°821,modificatorio del Texto Vigente del Numeral 1 del Apéndice II del Texto Único Ordenado de la Ley del Impuesto General a las Ventas y Selectivo al Consumo,aprobado por Decreto Supremo N°054-99-EF. '