You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将多HTML文件中BeautifulSoup提取结果存入DataFrame单列?

如何将BeautifulSoup提取的记录存入单列DataFrame?

我来帮你调整代码,实现把每条提取的红色字体文本作为单独行,存入只有file列的DataFrame里。思路很简单:先把所有提取到的文本统一收集到一个列表,最后用这个列表生成DataFrame就好。

首先你需要先安装pandas库(如果还没装的话),在终端里运行:

pip install pandas

然后修改你的代码如下:

import glob
import os.path
from bs4 import BeautifulSoup
import pandas as pd  # 新增导入pandas库

dir_path = r"C:\My_folder\tmp"
# 初始化空列表,用来收集所有提取到的文本记录
records = []

for file_name in glob.glob(os.path.join(dir_path, "*.html")):
    with open(file_name) as html_file:
        # 建议指定解析器,避免BeautifulSoup的默认解析器警告
        soup = BeautifulSoup(html_file, "html.parser")
        for i in soup.select('font[color="#FF0000"]'):
            # 可选:去掉文本前后的空白字符,让内容更整洁
            extracted_text = i.text.strip()
            print(extracted_text)
            # 把每条提取的文本加入列表
            records.append(extracted_text)

# 用收集到的列表创建DataFrame,指定列名为"file"
df = pd.DataFrame(records, columns=["file"])

# 如果你需要把DataFrame保存到文件,比如CSV格式(不保存索引)
df.to_csv(os.path.join(dir_path, "extracted_records.csv"), index=False)

# 也可以直接打印查看DataFrame的前几行内容
print(df.head())

关键修改点说明:

  • 新增pandas导入,用来处理DataFrame数据结构
  • 用records列表替代原来的TXT文件写入操作,统一收集所有提取的文本
  • 循环结束后,通过pd.DataFrame()把列表转换成单列DataFrame,列名设为file
  • 最后可以选择把DataFrame保存成CSV(或Excel等格式),方便后续分析处理

这样所有从HTML里提取的红色字体文本,都会作为单独的行存到DataFrame的file列里啦~

内容的提问来源于stack exchange,提问作者Keval

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:01:22