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

PHP 獲取網站 Google 收錄量示例:正則解析搜索結果頁

     編輯:PHP 綜合知識

實現思路

通過請求 site:domain.com 搜索頁,解析 #resultStats 區域提取收錄數字。注意:Google 反爬機制嚴格,生產環境建議使用官方 Search Console API 或第三方服務。

代碼實現

<?php
/**
 * 獲取域名 Google 收錄量(僅供學習/低頻使用)
 * @param string $domain 目標域名,如 example.com
 * @return int|false 收錄數量,失敗返回 false
 */
function getGoogleIndexCount($domain) {
    $url = 'https://www.google.com/search?q=site:' . urlencode($domain);
    $opts = [
        'http' => [
            'method' => 'GET',
            'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36\r\n" .
                       "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n",
            'timeout' => 10,
            'ignore_errors' => true,
        ],
        'ssl' => [
            'verify_peer' => false,
            'verify_peer_name' => false,
        ]
    ];
    $context = stream_context_create($opts);
    $html = @file_get_contents($url, false, $context);
    if ($html === false) return false;

    // 解析 resultStats 區域,格式約為 "約 1,230,000 項結果"
    if (preg_match('/id=["\']resultStats["\'][^>]*>(.*?)<\/div>/is', $html, $m)) {
        $text = strip_tags($m[1]);
        // 提取數字(去除逗號、中文約字等)
        $numStr = preg_replace('/[^\d]/', '', $text);
        return (int)$numStr;
    }
    return false;
}

// 使用示例
$count = getGoogleIndexCount('jb51.net');
if ($count !== false) {
    echo "jb51.net Google 收錄約 {$count} 條\n";
} else {
    echo "獲取失敗,可能被反爬或結構變更\n";
}

關鍵點解析

  1. User-Agent 偽裝:必須設置瀏覽器級 UA,否則直接返回 403/驗證碼頁。
  2. HTTPS + SSL 驗證關閉:簡化請求,生產環境應配置 CA 憑證。
  3. 正則容錯性:Google 頁面結構常變,建議多備選模式或使用 DOMDocument 解析。
  4. 頻率控制:短時間大量請求會觸發 reCAPTCHA,建議緩存結果 24h。

更穩健的替代方案

方案優點缺點
Google Search Console API官方、準確、無反爬需驗證站點擁有權、配額限制
第三方 SEO 工具 API數據豐富(關鍵詞、排名、反鏈)付費、依賴第三方
自建爬蟲池 + 代理 IP完全可控維護成本高、法律風險

法律與道德提醒

大規模抓取搜索引擎結果可能違反《計算機信息網絡國際聯網管理暫行規定》及 Google 服務條款。建議:

  • 僅用於自有站點監控
  • 頻率 ≤ 1 次/分鐘/域名
  • 遵守 robots.txt
  • 優先使用官方 API
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved