我正在使用BeautifulSoup尝试使用以下内容简单地删除HTML表:
import urllib
import urllib.request
from bs4 import BeautifulSoup
def make_soup(url):
page = urllib.request.urlopen(url)
sdata = BeautifulSoup(page, 'html.parser')
return sdata
url = 'http://www.satp.org/satporgtp/countries/pakistan/database/bombblast.htm'
soup = make_soup(url)
table = soup.findAll('table', attrs={'class':'pagraph1'})
table = table[0]
trows = table.findAll('tr')
bbdata_ = []
bbdata = []
for trow in trows:
bbdata_ = trow.findAll('td')
bbdata = [ele.text.strip() for ele in bbdata_]
print(bbdata)
但是,我只能提取表格中的最后一行,即
['Total*', '369', '1032+']
所有数据都包含在trows
中,所以我必须错误地形成循环,但我不确定如何。
答案 0 :(得分:2)
你的问题在这里:
bbdata = [ele.text.strip() for ele in bbdata_]
您想要附加到列表或扩展它:
bbdata.append([ele.text.strip() for ele in bbdata_])
每次循环都会覆盖bbdata,这就是为什么它最终只能得到最终值。