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

PHP 串接 QQ 達人介面查詢用戶資訊(含 Referer 偽造與城市代碼)

     編輯:PHP 相關知識

PHP 串接 QQ 達人介面查詢用戶資訊(含 Referer 偽造與城市代碼)

QQ 達人介面已啟用防盜鏈,需偽造 Referer: https://city.qq.com。本範例示範以 stream_context_create 發送帶自訂 Header 的請求,解析回傳 JSONP 格式資料。

完整代碼

<?php
$refer = "https://city.qq.com";
$opt = array('http' => array('header' => "Referer: $refer"));
$context = stream_context_create($opt);

$jsonUrl = "https://city.qq.com/json.php?mod=search&act=page&callback=showSrchResult&jsontype=str&perpage=10&cd=610900&nl=3&xb=0&type=city&pg=1";

$jsonStr = getJson($jsonUrl, $refer, $context);
echo $jsonStr;

function getJson($url, $referer, $context) {
    $opt = array('http' => array('header' => "Referer: $referer"));
    $context = stream_context_create($opt);
    $getJsonStr = file_get_contents($url, false, $context);
    // 移除 JSONP 包裝:前綴 "showSrchResult(" 與尾部 ");"
    $getJsonStr = substr($getJsonStr, 15, -2);
    return $getJsonStr;
}
?>

參數說明

  • cd=610900:城市代碼(例:西安),可擴展抓取千萬級用戶。
  • perpage=10&pg=1:分頁參數。
  • callback=showSrchResult:JSONP 回呼函式名,解析時需去除。

安全與合規提醒

  • 偽造 Referer 可能違反服務條款,僅供學習研究。
  • 大量抓取請評估法律風險,建議使用官方開放 API 或合作管道。
  • QQ 介面可能隨時變更,生產環境請做好異常處理與快取機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved