当前位置:主页 > 查看内容

站点接入相声

发布时间:2021-04-24 00:00| 位朋友查看

简介:相声来源 喜马拉雅 https://www.ximalaya.com/ 站点播放相声 打完游戏写个接口放松放松 /xk 个人站点 接入 相声 技术 php phpQuery ajax XHR分析 步骤 找到相声列表: https://www.ximalaya.com/xiangsheng/xiangsheng/ 先确定一下页面的列表是静态代码还是JS……

站点播放相声

  • 打完游戏,写个接口放松放松 /xk
  • 个人站点 接入 相声

技术:

  • php
  • phpQuery
  • ajax
  • XHR分析
  • 步骤
  1. 找到相声列表: https://www.ximalaya.com/xiangsheng/xiangsheng/
    在这里插入图片描述

  2. 先确定一下页面的列表是静态代码还是JS动态加载
    在这里插入图片描述
    源码页面有列表可以知道直接使用PHPQuery获取标签即可。

  3. 找到其中一个的json数据
    在这里插入图片描述

  4. 双击连接打开
    在这里插入图片描述
    在这里插入图片描述

  5. 找到音乐源地址
    在这里插入图片描述

  6. 详细
    在这里插入图片描述

  • 这样就可以把所有的相声都获取到了

大致步骤就是:

  • 找到相声类型列表 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://blog.csdn.net/qq_44009311/article/details/115429199
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:2021湖南多校对抗赛第三场 下一篇:没有了

推荐图文


随机推荐