福利,小姐姐直播跳舞怎么就跑我电脑来了!!Python一网打尽虎牙小姐姐的直播信号源!!快上车!

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~

对了大家可以关注小编的公众号哟~~
Python日志在这里插入图片描述

大家好,我大胆又来了!
天天给大家分享小游戏啥的,肯定小伙伴都觉得有点无聊,今天给大家带来福利啦!!
今天我们又用Python来玩一个好玩的程序。随着收看直播的用户激增,越来越多的小姐姐们都在通过直播的方式和粉丝们交流互动。但是直播的界面中总是充斥着各种各样的广告推荐和弹幕信息,让我不能专注于欣赏小姐姐。

我们可以通过网页分析,来获取到小姐姐的直播信息源,然后通过本地的视频流播放器来收看小姐姐的直播。这让我感觉到小姐姐仿佛就在我的身边。既能锻炼自己的Python知识,又能欣赏小姐姐,岂不美哉。需要源码的+UP主Python学习交流群:773162165在这里插入图片描述

01.直播信号抓取

首先,我们通过对于B站直播网页的分析,来获取小姐姐直播间的直播信号源。

大家可以任意打开一个B站小姐姐的直播间,如下图所示:
在这里插入图片描述
首先通过“F12”按键打开 “开发者模式”,然后在Network选项下,点击XHR组件。

通过翻阅可以找到以live开头的标签内容,双击之后,就可以得到请求的信息。

可以看到,这个Request URL就是直播的信号源。

# 确定url地址 获取每个视频的 ID
for page in range(5, 11):
    print(f'=======================正在爬取第{page}页数据=======================')
    url = f'https://v.huya.com/g/all?set_id=31&order=hot&page={page}'
    """
    headers是什么? 请求头
    请求头的作用是什么?  把python爬虫代码伪装浏览器对服务器发送请求 (如果不伪装: 服务器可能不会给你数据/ 给你的数据是错误的..)
    请求头里面需要加那些东西呢?  这些东西有什么用呢?
        user-agent: 浏览器的信息
        cookies: 用户信息, 常用于检测是否有登录账号  爬VIP资料 
        referer: 防盗链  告诉服务器 我们请求的url地址是从哪里过来的
        host: 域名,主机地址
    
    headers 是字典的形式 : 键值对 一个键 对应一个值  键和值之间用:隔开的  值可以是任意类型 键 字符串 数字 元组
    """
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
    }
    response = requests.get(url=url, headers=headers)

程序抓取直播信号源

上述的方式,是通过手动的方式,来获取直播的信号源。

我们还可以通过程序的方式来进行直播信号源的获取。

直播信号源的接口地址为:

https://liveapi.huya.com/moment/getMomentContent?callback=jQuery112408236898064701803_1620994683221&videoId=485192023&uid=&_=1620994683241

为了获取视频源的地址,需要向上述的连接中,传递几个参数,分别为:在这里插入图片描述
我们抓取的视频我们都可以直接放在我们建立的文件夹里面:

# 自动创建文件夹
filename = 'video\\'

我们抓取数据之后需要进行解析:

# 解析数据
    """
    .*? 通配符 可以匹配任意字符  \d 匹配一个数字 \d+ 匹配多个数字
    正则表达式 提取出来的内容 是一个列表的形式
    """
    video_ids = re.findall('<a href="/play/(\d+)\.html" class="video-wrap statpid"', response.text)
    # print(video_ids)
    for index in video_ids:
        # 爬虫入门简单  越到后面越难  难在解密 以及数据查找
        # get 请求的url地址 ? 后面一大串内容 都是属于请求参数
        index_url = 'https://liveapi.huya.com/moment/getMomentContent'
        # params 请求参数
        # 如果你post 请求 data表单
        params = {
            # 'callback': 'jQuery112408236898064701803_1620994683221',
            'videoId': index,
            'uid': '',
            '_': '1620994683241',
        }
        response_1 = requests.get(url=index_url, params=params, headers=headers)
        # pprint.pprint(response_1.json())
        # 怎么提取json数据内容: 根据键值对 取值, 根据冒号左边的键 提取 冒号右边的值
        video_url = response_1.json()['data']['moment']['videoInfo']['definitions'][-1]['url']
        video_title = response_1.json()['data']['moment']['videoInfo']['videoTitle']

然后就是对数据进行保存:

 # 保存数据
        # 获取二进制数据内容
        video_content = requests.get(url=video_url, headers=headers).content
        with open(filename + video_title + '.mp4', mode='wb') as f:
            f.write(video_content)
        print(video_title, video_url)

最后咋们来看看效果吧:
使用Ctrl+shift+F10运行代码:
在这里插入图片描述
然后打开我们创建的文件夹video查看我们爬取的视频:
在这里插入图片描述
好啦,今天的福利就给大家安利到这里啦,有啥不懂的大家可以在下方评论,需要源码的可以找小编领取哟,记得关注小编的公众号哈~在这里插入图片描述

很多小伙伴在学习python的时候总会遇到一些问题和瓶颈,没有方向感,不知道该从哪里入手去提升,对此我整理了一些资料,希望能够去帮助到小伙伴们,可以加Python学习交流裙:773162165

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github下载地址:https://github.com/XLAccount/MiaoBo 项目详解地址:http://www.code4app.com/blog-843201-350.html 速集成RTMP的视频推流教程:http://www.code4app.com/blog-843201-315.html ffmpeg常用命令操作:http://www.code4app.com/blog-843201-326.html #关于IJKMediaFramework/IJKMediaFramework.h找不到的问题,下载后直接拉到项目中即可 下载地址:https://pan.baidu.com/s/1boPOomN 密码::9yd8 #BUG修复: 解决登录程序偶尔崩溃,修复轮播图片和页面控制器叠加等问题,修复新浪授权登录 (2016.9.7) 解决程序运行中偶尔崩溃问题,解决连续下拉刷新崩溃问题,优化代码 (2016.9.8) 优化直播页面,减少不必要的性能消耗,增加用户体验 (2016.9.11) 适配5s以上的机型除了6sPlus和6Plus延迟较大外,其余延迟都较小,网速好的话可以忽略不计 (2016.9.12) 新版本极大优化程序性能,修复关注数据异常等小问题,重新布局热门页面,减少因反复加载带来的性能消耗 (2016.9.13) 增加个人中心页面,采用下拉放大图片 ➕ 波纹效果 (2016.9.14) ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb.gif) 展示图片 ![image](https://github.com/XLAccount/ALLGIFS/blob/master/psb-1.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-2.gif) 展示图片 ![image text](https://github.com/XLAccount/ALLGIFS/blob/master/psb-3.gif) 展示图片 感谢大神Monkey_ALin http://www.jianshu.com/users/9723687edfb5/latest_articles 的demo支持

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值