基于bs4实现:将每个<a>标签内容写入以H2文本命名的独立文件
使用BeautifulSoup提取标签内容并生成独立文件
实现步骤
- 导入
BeautifulSoup和os库,前者用于解析HTML,后者处理文件操作 - 加载并解析目标HTML内容(本地文件或网页响应)
- 遍历所有
<a>标签,提取内部<h2>的文本作为文件名(需处理非法字符) - 将每个
<a>标签的完整HTML代码写入对应文本文件
示例代码
假设目标HTML结构如下(input.html):
<div class="content"> <a href="/category/green"> <h2>Green</h2> <p>Details about green category</p> <img src="green.jpg" alt="Green"> </a> <a href="/category/blue"> <h2>Blue</h2> <p>Details about blue category</p> <img src="blue.jpg" alt="Blue"> </a> </div>
处理代码:
from bs4 import BeautifulSoup import os # 读取本地HTML文件(若为网页,可替换为requests.get(url).text) with open("input.html", "r", encoding="utf-8") as file: html = file.read() soup = BeautifulSoup(html, "html.parser") # 遍历所有<a>标签 for a_element in soup.find_all("a"): # 获取<h2>文本并清理空白 h2_title = a_element.find("h2").get_text(strip=True) # 处理文件名,避免系统非法字符 valid_filename = h2_title.replace("/", "_").replace(":", "_").replace("?", "_") + ".txt" # 转换<a>标签为完整HTML字符串 a_html_content = str(a_element) # 写入文件 with open(valid_filename, "w", encoding="utf-8") as output_file: output_file.write(a_html_content)
效果说明
运行代码后,会生成Green.txt和Blue.txt两个文件:
Green.txt内的内容为对应<a>标签的完整HTML代码:
<a href="/category/green"> <h2>Green</h2> <p>Details about green category</p> <img src="green.jpg" alt="Green"> </a>
Blue.txt内容同理,为对应<a>标签的完整HTML代码
内容的提问来源于stack exchange,提问作者Reboot
相关产品推荐
相关产品推荐

