📅  最后修改于: 2023-12-03 14:49:56.710000             🧑  作者: Mango
在 PHP 中抓取网页通常需要使用到解析工具,其中一个非常好用的工具就是 HTML DOM 解析器。该解析器可以通过 PHP 对 HTML 文档进行解析,找到其中的元素、属性和文本节点,实现数据的提取和操作,非常方便。
在开始之前,需要先安装 HTML DOM 解析器。可以通过 Composer 进行安装,也可以手动下载源码文件并引入。
可以在项目根目录下通过 Composer 安装 HTML DOM 解析器:
composer require sunra/php-simple-html-dom-parser
安装完成后,可以通过以下方式引入:
require 'vendor/autoload.php';
也可以手动下载 HTML DOM 解析器的源码,然后引入:
require 'path_to/simple_html_dom.php';
HTML DOM 解析器解析 HTML 文档非常简单,只需要使用 str_get_html()
函数即可。该函数接受一个 HTML 字符串,返回一个解析后的对象。
下面是一个示例程序,该程序抓取了某新闻网站的首页,并提取了其中的新闻标题和链接:
<?php
require 'vendor/autoload.php'; // 或者手动引入 simple_html_dom.php
$html_str = file_get_contents('https://news.sina.com.cn'); // 获取网页内容
$html = str_get_html($html_str); // 解析 HTML 文档
foreach ($html->find('a') as $a) { // 查找所有链接
if ($a->class == 'news-title') { // 判断是否为新闻标题链接
$title = $a->innertext; // 获取标题文本
$link = $a->href; // 获取链接
echo "- [$title]($link)\n"; // 输出标题和链接
}
}
解析器会将 HTML 文档转换为一个元素树,可以通过 find()
方法查询其中的元素。该方法接受一个 CSS 选择器,返回一个包含所有符合条件的元素的数组。在上面的示例中,我们使用 find()
方法查找了所有链接,然后筛选出了新闻标题链接,并获取了它们的文本和链接地址。
通过 HTML DOM 解析器,我们可以方便地解析 HTML 文档,并提取其中的元素、属性和文本节点。在实际开发中,可以将其应用于各种数据抓取和处理的场景中。