使用Python提取本地HTML指定标签内文本的问题求助
HTML标签文本提取及批量处理解决方案
你的代码遇到的两个问题,根源分别是:
- 用
re.search只会返回每行的第一个匹配项,无法捕获同一行的多个目标标签 - 正则表达式里的
.*是贪婪匹配,会从第一个目标标签开始,一直匹配到该行最后一个</div>,导致内容提取错误
最优方案:用BeautifulSoup解析HTML(推荐)
正则处理HTML很容易踩坑(比如标签嵌套、换行、额外属性等),用专业的HTML解析库能彻底解决这些问题,代码也更简洁可靠。
步骤1:安装依赖
pip install beautifulsoup4
单个文件处理代码
from bs4 import BeautifulSoup file_path = "你的目标HTML文件路径.html" count = 0 with open(file_path, 'r', encoding='utf8') as fp: # 解析HTML内容 soup = BeautifulSoup(fp, 'html.parser') # 定位所有符合class的div标签 target_divs = soup.find_all( 'div', class_='th-choice-list-name headerViewModeElementLoc th-choice-list-description-value' ) # 遍历提取文本 for div in target_divs: count += 1 # strip=True自动去除文本前后的空格、换行符 extracted_text = div.get_text(strip=True) print(extracted_text) print(f"已提取第 {count} 项")
批量处理50+HTML文件代码
from bs4 import BeautifulSoup import os # 替换为你的HTML文件所在文件夹路径 folder_path = "存放HTML文件的文件夹路径" total_count = 0 # 遍历文件夹内所有HTML文件 for filename in os.listdir(folder_path): if filename.lower().endswith('.html'): file_full_path = os.path.join(folder_path, filename) print(f"\n正在处理文件:{filename}") with open(file_full_path, 'r', encoding='utf8') as fp: soup = BeautifulSoup(fp, 'html.parser') target_divs = soup.find_all( 'div', class_='th-choice-list-name headerViewModeElementLoc th-choice-list-description-value' ) for div in target_divs: total_count += 1 extracted_text = div.get_text(strip=True) print(f"提取内容:{extracted_text}") print(f"累计提取:{total_count} 项")
正则修改方案(仅用于简单场景)
如果一定要用正则解决,需要做两处修改:用re.findall捕获所有匹配项,同时用非贪婪匹配.*?限制匹配范围:
import re file_path = "你的目标HTML文件路径.html" count = 0 # 读取整个文件内容(避免标签跨分行的情况) with open(file_path, 'r', encoding='utf8') as fp: content = fp.read() # 非贪婪匹配+全局查找 pattern = re.compile( r'<div class="th-choice-list-name headerViewModeElementLoc th-choice-list-description-value">(.*?)</div>', re.DOTALL # 让.匹配换行符,处理标签跨分行的情况 ) matches = pattern.findall(content) for match in matches: count += 1 # 清理文本中的 和多余空格 clean_text = re.sub(r' |\s+', ' ', match).strip() print(clean_text) print(f"已提取第 {count} 项")
内容的提问来源于stack exchange,提问作者AriffKmy
相关产品推荐
相关产品推荐

