- 相聲來源:
喜馬拉雅
https://www.ximalaya.com/
站點播放相聲
- 打完游戲,寫個介面放松放松 /xk
- 個人站點 接入 相聲
技術:
- php
- phpQuery
- ajax
- XHR分析
- 步驟
-
找到相聲串列: https://www.ximalaya.com/xiangsheng/xiangsheng/

-
先確定一下頁面的串列是靜態代碼還是JS動態加載

原始碼頁面有串列可以知道直接使用PHPQuery獲取標簽即可, -
找到其中一個的json資料

-
雙擊連接打開


-
找到音樂源地址

-
詳細

- 這樣就可以把所有的相聲都獲取到了
大致步驟就是:
- 找到相聲型別串列 id
- 找到相聲型別對應的相聲串列
- 找到音樂源
原始碼:
<?php
// 喜馬拉雅相聲大全
/**
* curl 訪問頁面
* @author: 文軒
* @link: http://wx0725.top
*
* data = http_build_query(array())
*/
header('Access-Control-Allow-Origin: /');
// 獲取全部相聲型別 (1. 2. 選擇一種即可,1是實時的,2是固定的)
// 1.
// include("../php/phpQuery/phpQuery/phpQuery.php"); // 爬蟲插件可以百度下載,或者私信
// $idArr = [];
// for ($i = 1; $i <= 10; $i++) {
// $url = "https://www.ximalaya.com/xiangsheng/xiangsheng/p{$i}";
// $html = phpQuery::newDocumentFile($url);
// $id = pq(".content", $html)->find("li");
// foreach ($id as $li){
// $li = pq("a.album-title", $li)->attr("href");
// $li = str_replace("/", "", $li);
// $li = str_replace("xiangsheng", "", $li);
// $idArr[] = $li;
// }
// }
// 為了節省時間直接使用陣列替換了上面的實時爬蟲,不過用上面的也可以
// 2.
$idArr = ["9723091","9742789","10091654","19366477","61","35105051","9739820","9742745","9742774","35815351","45193688","11219907","238474","8287357","9723257","39488639","9739700","11219576","2667276","8302615","5932959","9741479","231992","5488545","4734638","10091916","10103087","9722934","10091533","9742533","47854430","9741525","9742296","24454832","32598659","9741806","11980585","9741427","43502878","9740840","5080817","9741333","27909622","10092005","34823317","9741574","11219759","11694891","11219250","32299123","35407874","10091517","10076348","35572291","4920505","10090622","43377753","43074442","10091746","9739836","35475441","10092072","10103956","4007","10102910","9723369","42839805","9723035","9739673","9742570","15839338","44656215","232010","10333372","354","9740086","6504420","10091881","14499865","9741628","45470240","9741937","10577377","44290838","19512780","9742091","9741877","20337620","9741961","29642561","46107570","2677366","232007","4436219","9742332","44743024","3103306","11220294","37597085","40970009","38173621","44180160","12471909","2712","14531875","10091846","4513282","18062454","2677685","11956308","11438153","9418573","232011","14364921","11220019","15321463","10091604","38454713","38751584","12049385","37883392","9739796","38749572","30955551","9742024","12149899","16190735","12914259","44155256","5163763","44553813","20547167","32959118","41764669","8289752","39715891","2961484","21024461","9740762","9599514","47855581","9740387","9436469","11942001","15791428","9742054","45258600","42173417","11790048","12517891","21375015","11220018","25167812","12151124","12423084","10967450","14231307","36989055","36720711","41900556","32445958","38475526","44615579","25167917","44162320","8287688","37796029","4559558","34858995","2997071","5998629","11795435","45216289","10028268","2707073","30175898","42658666","9742456","37597590","5489025","47523000","43000631","420794","43623765","38453565","36129465","40113475","44777592","14088580","5155965","35464701","18216589","4687173","32147288","44611066","30923538","8287550","16137935","5029472","6059125","35478516","37007195","44330941","15802350","13741245","43085507","14659743","31886530","8987936","40216835","40316776","4226822","11500879","14794706","12902396","20871082","31813068","14689384","5349725","3584529","35189819","39719546","34514942","11466887","12064284","38247541","18577352","18294417","4213759","41360242","21824864","16051035","12642454","18064343","10104519","2674281","29865810","4112311","4873508","16152017","38958751","23442684","40531760","37596961","5313671","33125466","39719819","13096195","39340106","38030734","46185497","16506751","38709024","41692961","20788632","4773950","34751093","36120433","43348866","15073860","41150359","4985687","889","22135226","18062457","45292047","44669664","36990782","21092118","13573511","43074432","5475444","6083521","38351842","42193675","14619674","5163889","9354624","12314152","18601282","47138897","42991669","9931648","38507843","35930795","31527521","38507459","4754875","9805021","6999259","43718808","42967935","29075187","4710437","7443199","242220","254212","12315126","18688481","8289414"];
$num = $_GET["num"];
$id = $idArr[array_rand($idArr)]; // 隨機一個型別
$size = $_GET["size"];
$url = "https://www.ximalaya.com/revision/play/v1/show?id={$id}&num={$num}&sort=-1&size={$size}&ptype=0";
$ul = file_get_contents($url);
$ul = json_decode($ul, true);
$ul = $ul["data"]["tracksAudioPlay"];
$re = [];
for ($i = 0; $i < count($ul); $i++) {
$home = "https://www.ximalaya.com";
$imghome = "https://imagev2.xmcdn.com/";
$arr = [];
$li = $ul[$i];
$arr["trackName"] = $li["trackName"]; // 描述
$arr["trackId"] = $li["trackId"]; // 標題ID
$arr["trackCoverPath"] = $imghome . $li["trackCoverPath"]; // 型別圖片
$arr["albumUrl"] = $home . $li["albumUrl"]; // 型別地址
$arr["albumName"] = $li["albumName"]; // 型別
$arr["updateTime"] = $li["updateTime"]; // 更新時間
$arr["createTime"] = $li["createTime"]; // 創建時間
$mp3 = "https://www.ximalaya.com/revision/play/v1/audio?id=" . $arr['trackId'] . "&ptype=1";
$arr["mp3"] = json_decode(file_get_contents($mp3))->data->src;
$re[] = $arr;
}
echo json_encode($re);
訪問介面 “?num=1&size=1” 效果:

這樣就可以直接使用ajax來呼叫介面嘍!

-
測驗:
http://wx0725.top/
流星蝴蝶沒有劍 -
有bug歡迎討論,
-
轉載請注明出處 ,🤓
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272578.html
標籤:其他
上一篇:從學校步入社會,人都不自覺的長大了,也變得要強起來!
下一篇:2021湖南多校對抗賽第三場
