【发布时间】:2017-04-18 14:44:11
【问题描述】:
table = soup.find('table', attrs={'id':'MainContent_grdUsers2'})
data = []
for tr in table.find_all('tr')[1:] :
td = tr.find_all('td')
try :
data += [
[
td[0].getText() ,
td[2].find('option', {'selected':'selected'}).getText(),
td[3].find('option', {'selected':'selected'}).getText(),
td[4].find('input').get('value'),
td[5].find('input').get('value'),
td[6].find('option', {'selected':'selected'}).getText()
]
]
except Exception as ex :
print(ex)
continue
with open('test5.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
for row in data :
writer.writerow([' '.join(str(r) for r in row)])
我正在尝试将复杂的 html 表解析为 csv。此代码有效并获取所需的数据,但每一行都包含在一个单元格中,而不是每行 6 个值中的每一个都包含在单独的列中。我在这里做错了什么?
【问题讨论】:
-
如果可能,最好包含输入数据的样本。我假设您使用的数据与 stackoverflow.com/q/43396370/2997179? 中的数据相同
标签: python-3.x csv beautifulsoup