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

PHP 串接百度圖片搜尋 API 獲取高清圖片實作

     編輯:PHP 相關知識

百度移動端圖片搜尋提供 JSON 介面,可透過 PHP 串接獲取圖片連結。本文示範基本串接與分頁顯示,並說明法律風險與替代方案。

核心實作代碼

<?php
// 參數處理
$page = isset($_GET['p']) ? max(1, intval($_GET['p'])) : 1;
$pn = ($page - 1) * 20; // 百度 pn 參數:起始索引

// 構造請求 URL (關鍵字:美女)
$keyword = '美女';
$url = 'https://m.baidu.com/img?' . http_build_query([
    'tn' => 'bdjsonliulan',
    'pu' => 'sz@1320_2001',
    'bd_page_type' => 1,
    'tag1' => $keyword,
    'realword' => $keyword,
    'word' => $keyword,
    'pn' => $pn,
    'rn' => 20,
]);

// 發送請求
$ctx = stream_context_create([
    'http' => [
        'timeout' => 10,
        'header' => "User-Agent: Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36\r\n" .
                    "Referer: https://m.baidu.com/\r\n"
    ]
]);
$json = @file_get_contents($url, false, $ctx);

if ($json === false) {
    die('請求失敗,請稍後再試');
}

$data = json_decode($json, true);
if (empty($data['data'])) {
    die('無圖片資料或介面變更');
}

// 輸出 HTML
header('Content-Type: text/html; charset=utf-8');
?>



    
    百度圖片搜尋 - <?php echo htmlspecialchars($keyword); ?>
    


    

- 第 頁

關鍵參數說明

參數說明
tn固定值 bdjsonliulan,指定 JSON 介面
word / realword / tag1搜尋關鍵字 (需 URL 編碼)
pn起始索引,第 1 頁為 0,第 2 頁為 20,以此類推
rn每頁數量,通常 20
User-Agent必須模擬瀏覽器,否則可能返回 403/空資料

⚠️ 法律與道德警示

  1. 版權風險:百度圖片搜尋結果多為第三方網站內容,直接抓取展示或下載可能侵犯著作權。
  2. 服務條款:自動化抓取違反百度《服務條款》與 robots.txt,IP 易被封禁。
  3. 內容合規:關鍵字「美女」易關聯擦邊/不當內容,若上線務必加入內容審核機制。
  4. 隱私保護:避免抓取含有人臉、車牌、地址等個資的圖片。

合法替代方案

  • Unsplash / Pexels / Pixabay API:提供高品質、可商用授權 (CC0/自有授權) 的免費圖片 API。
  • 百度圖片開放平台:申請官方 API (需企業資質),合法獲取授權圖片。
  • 自建圖庫:購買正版素材或自行拍攝,完全掌控版權。
本文僅供技術研究學習,請勿用於商業或非法用途。尊重知識產權,從合法獲取圖片開始。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved