网上搜索各种平台的直播源地址都是满天飞,但是经常会有失效的时候,因为官方也会定期的升级系统修改各种参数或链接让直播源不能永久,所以敝人一直崇尚的是授人以鱼不如授人以渔,与其给直播源别人,不如教大家如何去爬取直播源。
在这里插入图片描述

0. 前言

前面已经爬取了几个直播网站的直播源,虎牙、斗鱼、B站,需要看的可以在置顶文章查看,也可以点击 直接传送,然后去查了一下国内的直播网站,有人气的就几家,其他的基本凉了,然后今天准备看看腾讯企鹅电竞,因为本人有时候也玩LOL,也会看比赛,而且腾讯的直播基本不会凉,所以来随我一起看看吧。

1. 直播源查找

今天刚好是LPL的春季赛,那就来看看比赛吧!额。。。这个清晰度。。。流畅!!!我这200M的大水管根本不能满足啊!要想看高清就得登录。
在这里插入图片描述
先刷新一下页面,然后F12查看源码,搜索flv/m3u8
在这里插入图片描述
复制这个链接到 VLC 播放一下,完美!
在这里插入图片描述

2. 浏览器请求过程分析及思路

那既然直播链接就在请求的页面中,这就非常简单了,直接请求页面即可。
地址:https://egame.qq.com/367958257 后面跟房间号即可。

3. 模拟实现

服务端(PHP):

<?php

header('Content-Type:application/json; charset=utf-8');
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE');
header('Access-Control-Allow-Credentials: true'); 
header('Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin');

$res = file_get_contents('https://egame.qq.com/' . $_POST["room_id"]);

$patt1 = '/var playerInfo = ([\w\W]*?);window._playerInfo=playerInfo;/';
preg_match_all($patt1, $res, $rs);

echo $rs[1][0];
exit;

前端H5:

<script>
    $.ajax({
        type: 'post',
        url: 'http://xxx/player/egame/url.php',
        data: {
            room_id: 367958257,
        },
        success: function(res){
            console.log(res);
        }
    });
</script>

返回结果:
在这里插入图片描述
我当然直接选择最高的8M 的直播源了,4K专享的应该需要登录吧,没有研究。
在这里插入图片描述

4. 总结

企鹅电竞🐧的直播源总的来说也很好抓的,直接从页面上就可以拿到,没有什么难度。
总结除了虎牙和斗鱼稍微难点,其他的直播都比较简单。如果有哪位朋友想抓某个直播源有困难,欢迎和我交流哦。

关于web直播媒体播放器,我试过很多,暂时没有找到一个非常合适的。(开源、免费、支持类型多、功能强大),后面找到了再分享吧!

在这里插入图片描述

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐