我似乎找不到这个问题的答案,所以我很困惑。我正在使用 Beautifulsoup 和以行标签 <th>
开头的表格解析 HTML 表格。然后是数据<td>
。我正在解析数据,然后将其写入 CSV 文件,但我在包含以 <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
还有?非常感谢任何帮助。
最佳答案
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)
关于python - 如何解析 HTML 表格,其行在 <tr> 标签下同时包含 <th> 和 <td> 标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888369/