gpt4 book ai didi

python - BeautifulSoup 处理多个 .html 文件

转载 作者:行者123 更新时间:2023-11-30 23:16:40 27 4
gpt4 key购买 nike

我正在尝试使用此处建议的模型 enter link description here 使用 BeautifulSoup 提取固定标签之间的信息

我的文件夹中有很多 .html 文件,我想将使用 BeautifulSoup 脚本获得的结果以单独的 .txt 文件的形式保存到另一个文件夹中。这些 .txt 文件应与原始文件同名,但仅包含提取的内容。我编写的脚本(见下文)成功处理文件,但没有将提取的位写入单个文件。

import os
import glob
from bs4 import BeautifulSoup

dir_path = "C:My_folder\\tmp\\"

for file_name in glob.glob(os.path.join(dir_path, "*.html")):
my_data = (file_name)
soup = BeautifulSoup(open(my_data, "r").read())
for i in soup.select('font[color="#FF0000"]'):
print(i.text)
file_path = os.path.join(dir_path, file_name)
text = open(file_path, mode='r').read()
results = i.text
results_dir = "C:\\My_folder\\tmp\\working"
results_file = file_name[:-4] + 'txt'
file_path = os.path.join(results_dir, results_file)
open(file_path, mode='w', encoding='UTF-8').write(results)

最佳答案

Glob 返回完整路径。您将重新打开找到的每个 font 元素的文件,替换文件的内容。将文件的打开位置移到循环之外;您确实应该使用文件作为上下文管理器(使用 with 语句)以确保它们也再次正确关闭:

import glob
import os.path
from bs4 import BeautifulSoup

dir_path = r"C:\My_folder\tmp"
results_dir = r"C:\My_folder\tmp\working"

for file_name in glob.glob(os.path.join(dir_path, "*.html")):
with open(file_name) as html_file:
soup = BeautifulSoup(html_file)

results_file = os.path.splitext(file_name)[0] + '.txt'
with open(os.path.join(results_dir, results_file), 'w') as outfile:
for i in soup.select('font[color="#FF0000"]'):
print(i.text)
outfile.write(i.text + '\n')

关于python - BeautifulSoup 处理多个 .html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27634123/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com