我似乎无法找到答案,所以我很难过。我使用Beautifulsoup解析HTML表格,并以行标签<th>
开头,然后是数据<td>
。我正在解析数据然后将其写入CSV文件,我遇到了包括&#34;行标题&#34;对于以<th>
标记开头的每一行。
这是我到目前为止所做的工作,除了<th>
行标签<th>
之外,它完成了大部分工作:
headers = [header.text.strip() for header in table.find_all('th',{'scope' :'col'})]
rows = []
for row in table.find_all('tr'):
rows.append([val.text.encode('utf8').rstrip() for val in row.find_all('td')])
with open('filename.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(row for row in rows if row)
有没有办法将其附加到rows
?非常感谢任何帮助。
答案 0 :(得分:2)
BeautifulSoup find_all
函数可以获取列表,因此要获取th
,您可以按如下方式修改脚本:
headers = [header.text.strip() for header in table.find_all('th',{'scope' :'col'})]
rows = []
for row in table.find_all('tr'):
rows.append([val.text.encode('utf8').rstrip() for val in row.find_all(['td', 'th'])])
with open('filename.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerow(headers)
writer.writerows(row for row in rows if row)
答案 1 :(得分:0)
您是否考虑过使用HTML Parser模块?