用python读取具有单一表格的html文件test.html,将表格的所有数据用bs4提取出来,并保存为同名的csv文件。
时间: 2024-05-03 20:21:45 浏览: 76
以下是解决方案:
```python
from bs4 import BeautifulSoup
import csv
# 读取html文件
with open('test.html', 'r') as f:
html = f.read()
# 解析html文件
soup = BeautifulSoup(html, 'html.parser')
# 获取表格数据
table = soup.find('table')
rows = table.find_all('tr')
# 将表格数据写入csv文件
with open('test.csv', 'w', newline='') as f:
writer = csv.writer(f)
for row in rows:
data = []
for cell in row.find_all(['td', 'th']):
data.append(cell.get_text().strip())
writer.writerow(data)
```
解释:
首先,我们使用`open()`函数读取html文件并将其保存在一个字符串变量中。然后,我们使用BeautifulSoup库将html解析为一个BeautifulSoup对象。接着,我们使用`find()`方法找到表格元素,然后使用`find_all()`方法获取所有行。对于每一行,我们使用`find_all()`方法获取所有单元格,然后将它们的文本内容添加到一个列表中。最后,我们使用csv库将列表写入csv文件中。
阅读全文