【发布时间】:2018-09-12 22:30:09
【问题描述】:
我已经用这段代码解析了表格
response = urllib.request.urlopen(url)
html = response.read()
soup = BeautifulSoup(html, 'html.parser')
table = soup.find("table", attrs={"class":"table table-condensed table-bordered"})
datasets = []
for row in table.find_all("tr")[1:]:
dataset = (td.get_text() for td in row.find_all("td"))
print (tuple(dataset))
datasets.append(dataset)
print("___________________________________\n")
print(tuple(dataset))
print("___________________________________\n")
print("parsing\n")
它给了
('A1 ', '- ', '- ', '- ', '- ', ' -\n ')
('A2', '- ', '- ', '- ', '- ', ' -\n ')
('A3', '- ', '- ', '- ', '- ', ' -\n ')
('A4', ' 1 W ', ' 50.1 Hz ', ' 0 V ', ' 24 °C ', ' 2018-09-12 19:05:49\n ')
('A5', ' 1 W ', ' 0 V ')
结果数据集为空
()
我想将结果放在一个数组中,这样我就可以访问每一行/列,但是 并找出
if datasets[3][0]=='A4' print (datasets[3][2])
为什么如果我更改代码并删除打印 (tuple(dataset)) 代码会更好地工作(尽管它不像我预期的那样)但是我可以拥有一个填充的数据集而不是像以前那样的空数据集:
datasets = []
for row in table.find_all("tr")[1:]:
#dataset = dict(zip(headings, (td.get_text() for td in row.find_all("td"))))
dataset = (td.get_text() for td in row.find_all("td"))
datasets.append(dataset)
#print (tuple(dataset))
print("___________________________________\n")
print(list(datasets[3]))
print(list(datasets[4]))
【问题讨论】:
标签: python-3.x parsing beautifulsoup