
高效提取HTML P标签数据并分组
本文介绍如何从HTML文档中提取<p></p>标签内的文本内容,并按<p></p>标签进行分组,最终生成一个PHP数组。我们将使用QueryList库来简化这个过程。
问题描述
给定一个包含多个<p></p>标签的HTML文件,每个<p></p>标签包含不同的文本内容,目标是提取这些文本内容并按<p></p>标签顺序分组,例如:
array(
0 => "第四章 医学微生物学(助理不考)",
1 => "第一节 微生物的基本概念"
)
解决方案:使用QueryList库
QueryList是一个功能强大的PHP HTML解析库,能够高效地处理HTML数据提取任务。 以下步骤演示如何使用QueryList实现目标:
-
安装QueryList: 使用Composer安装QueryList:
composer require ql/querylist立即学习“前端免费学习笔记(深入)”;
-
加载HTML: 使用QueryList加载包含
<p></p><div class="aritcle_card flexRow"> <div class="artcardd flexRow"> <a class="aritcle_card_img" href="/ai/758" title="Nanonets"><img src="https://img.php.cn/upload/ai_manual/001/503/042/68b6db6adbfa5954.png" alt="Nanonets" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a> <div class="aritcle_card_info flexColumn"> <a href="/ai/758" title="Nanonets">Nanonets</a> <p>基于AI的自学习OCR文档处理,自动捕获文档数据</p> </div> <a href="/ai/758" title="Nanonets" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a> </div> </div>标签的HTML内容。 -
提取数据: 使用QueryList的选择器语法提取所有
<p></p>标签的文本内容。 -
生成分组数组: QueryList的
texts()方法直接返回一个包含所有<p></p>标签文本内容的数组,无需额外分组步骤。
以下是一个完整的代码示例:
require 'vendor/autoload.php'; // Composer autoloader
use ql\querylist;
// 示例HTML内容
$html = '
<p>第四章 医学微生物学(助理不考)</p>
<p>第一节 微生物的基本概念</p>
';
// 使用QueryList加载HTML
$ql = querylist::html($html);
// 提取所有<p>标签的文本内容
$data = $ql->find('p')->texts()->all();
// 打印结果
print_r($data);
运行此代码将输出:
<code>Array
(
[0] => 第四章 医学微生物学(助理不考)
[1] => 第一节 微生物的基本概念
)</code>
通过QueryList,我们能够简洁地完成HTML数据提取和分组任务,避免了复杂的DOM操作。 这个方法高效且易于理解,适合处理各种HTML数据提取场景。










