实际工作中需要对html文件进行处理,处理要求:
(1)所有的html保存在all目录。
(2)通过python读取all目录下的html文件。
(3)将html文件读取的内容保存在out.html中。
第一个版本程序如下:
import os
from bs4 import BeautifulSoup
# 检查并创建output文件
if not os.path.exists('out.txt'):
open('out.txt', 'w').close()
# 遍历all目录下的所有HTML文件
for filename in os.listdir('all'):
if filename.endswith('.html'):
# 解析当前文件
with open(f'all/{filename}', 'r', encoding='utf-8') as f:
soup = BeautifulSoup(f.read(), 'html.parser')
# 获取表格数据
table = soup.find('table')
rows = table.find_all('tr')
data = []
for row in rows:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
# 将表格数据写入output文件
with open('out.txt', 'a', encoding='utf-8') as f:
f.write(f'-----{filename}-----\n')
for row in data:
f.write('\t'.join(row) + '\n')
执行结果后,发现显示效果不好。需要再次优化:
(1)以逗号分隔,带表头文件。
(2)保存为可以识别的mysql格式。