首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 網頁爬蟲實作:四大主流解析庫完整指南與代碼示例

     編輯:PHP 相關知識

PHP 網頁爬蟲實作:四大主流解析庫完整指南與代碼示例

網頁資料擷取是後端開發常見需求,核心在於解析 DOM 樹並精準定位目標節點。本文整理四種成熟、易用的 PHP 爬蟲方案,若熟悉 jQuery 選擇器語法,上手極快。

一、Ganon:輕量級 DOM 解析器

專案地址: Ganon 官方頁面
文檔: 使用手冊

Ganon 採用類似 jQuery 的選擇器語法,代碼極為簡潔。以下示範抓取首頁所有 class="focus" 的 <div> 元素並輸出 class 值:

<?php
include 'ganon.php';
$html = file_get_dom('https://www.ido321.com/');
foreach($html('div[class="focus"]') as $element) {
    echo $element->class, "<br>\n";
}
?>

Ganon 執行結果

二、phpQuery:jQuery 語法的 PHP 移植版

專案地址: phpQuery 官方頁面
文檔: 詳細手冊

phpQuery 完整移植了 jQuery 核心 API,對前端開發者極其友好。示例:抓取首頁所有 <article> 標籤下的 <h2> 內容:

<?php
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('https://www.ido321.com/');
$artlist = pq("article");
foreach($artlist as $title){
    echo pq($title)->find('h2')->html()."<br/>";
}
?>

phpQuery 執行結果

三、Simple HTML DOM:經典好用的解析庫

專案地址: SourceForge 頁面
文檔: 使用指南

支援 URL 與檔案直接建立 DOM 物件,語法直觀。示例:抓取首頁所有超連結:

<?php
include 'simple_html_dom.php';
$html = file_get_html('https://www.ido321.com/');
foreach($html->find('a') as $element)
    echo $element->href . '<br>';
?>

Simple HTML DOM 執行結果

四、Snoopy:模擬瀏覽器的 HTTP 客戶端

專案地址: Snoopy 官方頁面

Snoopy 不僅能抓取內容,還支援表單提交、Cookie 處理、重定向追蹤等瀏覽器行為。示例:獲取首頁完整 HTML:

<?php
include("Snoopy.class.php");
$url = "https://www.ido321.com";
$snoopy = new Snoopy;
$snoopy->fetch($url);
echo $snoopy->results;
// 進階用法:
// echo $snoopy->fetchtext;    // 純文本內容
// echo $snoopy->fetchlinks($url); // 所有連結
// $snoopy->fetchform;        // 表單資訊
?>

Snoopy 執行結果

五、手動編寫爬蟲:最大彈性但成本最高

若具備扎實的網路協議與正則表達式功力,可使用 fsockopen、cURL 或 stream_context_create 手寫爬蟲,完全掌控請求細節。但需自行處理編碼、重定向、壓縮、反爬機制等複雜問題,維護成本極高,非必要不建議採用。

開源爬蟲專案推薦

補充技巧:關鍵字提取與摘要生成

配合 strip_tags() 去除 HTML 標籤,結合中文分詞庫(如 SCWS、Jieba PHP)可實現關鍵字提取與自動摘要,供站內搜尋或 SEO 使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved