首先解析html提取文本与元信息,再从结构、文本、样式三方面构建特征:1. 用beautifulsoup等工具解析HTML,提取标题、正文、链接及属性;2. 统计标签频率、dom深度、路径模式等结构特征;3. 清洗文本并采用TF-IDF或词嵌入向量化;4. 提取class、id、样式、脚本等交互与视觉线索,最终转化为模型可用的数值型特征。

HTML数据本身是结构化与非结构化混合的内容,直接用于机器学习模型并不合适。要将HTML数据应用于机器学习任务(如网页分类、信息提取、内容推荐等),必须经过系统的预处理和特征工程。关键在于从HTML中提取有意义的语义和结构特征,将其转化为数值或类别型输入。
1. HTML解析与内容提取
在进行特征工程之前,首先要解析HTML文档,提取有用信息:
- 使用BeautifulSoup或lxml等库解析HTML标签结构,去除无关代码(如脚本、样式表)。
- 提取文本内容:获取
<p>、<h1>-<h6>、<div>等标签中的纯文本。 - 保留关键元信息:如
<title>、<meta description>、<lang>属性等。 - 识别链接结构:提取超链接数量、内外链比例、锚文本等。
2. 结构特征提取
HTML的树状结构蕴含丰富信息,可转化为结构化特征:
- 标签频率统计:统计各类HTML标签出现次数(如h1数量、img数量、form数量),反映页面类型(如登录页通常有form)。
- DOM深度与宽度:计算DOM树的最大深度、平均分支数,用于判断页面复杂度。
- 标签路径模式:提取关键元素的Xpath路径,通过nlp方法(如TF-IDF或词嵌入)向量化。
- 表格与列表结构:识别
<table>、<ul>、<ol>的存在及嵌套层次,有助于判断数据密集型页面。
3. 文本特征工程
从HTML中提取的文本需进一步处理为模型可用形式:
立即学习“前端免费学习笔记(深入)”;
- 文本清洗:去除HTML实体(如 )、特殊符号、多余空白。
- 分词与标准化:对文本进行分词、转小写、去停用词,中文可使用jieba分词。
- 向量化表示:
- 标题与正文分离:利用标签层级区分标题、副标题、正文,分别提取特征并加权。
4. 样式与交互特征
HTML中的样式和行为属性也能提供有用线索:
- 提取
class和id属性中的关键词(如“menu”、“footer”、“btn”),统计其出现频率。 - 分析内联样式或css类命名模式,识别响应式设计或移动端适配特征。
- 检测javaScript事件绑定(如onclick),作为交互性指标。
- 图片与媒体特征:统计
<img>标签数量、alt文本完整性、是否含data-src(懒加载)。
基本上就这些。将HTML转化为机器学习特征的核心思路是:从结构、文本、样式三个维度提取可量化的指标,并结合任务目标选择合适的表示方法。预处理质量直接影响模型性能,尤其在网页分类、爬虫反识别、内容去噪等场景中尤为重要。不复杂但容易忽略的是标签上下文和层级关系,合理建模DOM路径往往能带来显著提升。


