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

百度網盤直鏈解析 PHP 代碼(臨時方案)

     編輯:PHP 綜合知識

⚠️ 重要提示

百度網盤介面頻繁變更,此方案僅供學習參考,不保證長期有效。生產環境請使用官方 OpenAPI 或授權下載方式。

原理

模擬瀏覽器訪問分享頁面,正則提取下載按鈕的真實鏈接,然後 302 重定向至該鏈接。

代碼實現

<?php
// downbd.php
$canshu = $_SERVER["QUERY_STRING"] ?? '';
if (empty($canshu)) {
    die("參數缺失:需提供 shareid 和 uk");
}

$shareUrl = "https://pan.baidu.com/share/link?$canshu";
$html = @file_get_contents($shareUrl);
if ($html === false) {
    die("無法獲取分享頁面,可能被風控或鏈接失效");
}

// 提取下載鏈接(頁面結構可能變動,需實時調整正則)
$pattern = '/class="dbtn cancel singledbtn" href=(.*?)id="downFileButtom"/is';
if (!preg_match($pattern, $html, $matches)) {
    die("解析失敗:頁面結構已變更或文件不存在");
}

$rawUrl = $matches[1];
$rawUrl = str_replace(['"', '&'], ['', '&'], $rawUrl); // 清理轉義

// 安全檢查:確保是百度網盤域名
if (!preg_match('/^https?:\/\/[^/]*baidu\.com/', $rawUrl)) {
    die("解析到非預期域名,疑似劫持");
}

header("Location: $rawUrl");
exit;
?>

調用方式

https://your-domain.com/downbd.php?shareid=xxxxxx&uk=yyyyyy

局限性與風險

  • 依賴頁面 HTML 結構,百度前端改版即失效。
  • file_get_contents 易被反爬蟲攔截(需偽造 User-Agent、Cookie、Referer)。
  • 無法處理大文件需驗證碼、會員限速等場景。
  • 法律風險:繞過官方下載接口可能違反服務條款。

正規替代方案

  1. 百度網盤開放平台:申請 AppKey,使用 OAuth 2.0 獲取 access_token,調用 /rest/2.0/xpan/file?method=download 獲取合法下載鏈接。
  2. 服務端代理下載:後端用 curl 分片下載後流式輸出給前端,隱藏真實鏈接並可做權限控制、限速、日誌。
  3. 前端直連:獲取官方下載鏈接後直接前端 <a download> 或 window.open。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved