虎牙网站视频怎么下载(爬取虎牙视频——补充介绍)

首页教程更新时间:2023-05-28 08:48:31

本文是上期文章()的补充说明,主要说明两个内容,一个是回调函数,另一个爬虫下载多页虎牙视频。

一.回调函数的说明

从上篇文章分析,我们分析的是不同视频的videoid与_:(时间戳)不一样,而没有分析callback。

虎牙网站视频怎么下载,爬取虎牙视频——补充介绍(1)

首先认识下callback,callback是回调函数,JavaScript中的一种函数。
被作为实参传入另一个函数,并在该外部函数内被调用,用来完成某些任务的函数,称为回调函数。也就是说回调函数是一个函数,作为参数传给另一个JavaScript函数,回调函数将会在这个函数执行完成后立即执行。回调函数是在传给的函数内部被调用执行的。
说简单点就是执行完这个函数再次执行,下面用实例讲述,便于理解。
包含mp4视频链接的网址如下为:

虎牙网站视频怎么下载,爬取虎牙视频——补充介绍(2)

网址callback与“预览”里网址的callback值一样,即执行了或者说回调。

虎牙网站视频怎么下载,爬取虎牙视频——补充介绍(3)

这样就在python中网址中不写入callback(见下图),就不会执行回调函数,requests请求得到的内容就不会有上图所标出的callback内容,请求内容以json格式输出也不会报错。

二.多页下载虎牙视频

因为我们把各个步骤都写成函数了,多页下载就需要找到规律,我们发现第一级网址中page参数代表页数,因此只需要循环一次执行每一页的下载即可。
代码如下:

import requests import re import time import pprint headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52', 'referer': 'https://v.huya.com/' } #获取网址内容 def get_response(url,headers): response = requests.get(url,headers=headers) return response #获取视频id def get_video_id(response): obj = re.compile(r'<li data-vid="(.*?)">',re.S) video_id_list = obj.findall(response.text) return video_id_list #获取视频链接地址,名称 def get_video_url(video_id,headers): url = f'https://liveapi.huya.com/moment/getMomentContent?videoId={video_id}&_={str(time.time()*1000)}' response = get_response(url,headers) #pprint.pprint(response.json()) data_dict = response.json() video_url = data_dict['data']['moment']['videoInfo']['definitions'][0]['url'] video_title = data_dict['data']['moment']['videoInfo']['videoTitle'] return video_url,video_title #下载保存视频 def download(url,title): with open('./video_huya/' title '.mp4',mode='wb') as f: f.write(requests.get(url).content) if __name__ == '__main__': for num in range(1,6): url = f'https://v.huya.com/g/all?set_id=67&order=hot&page={num}' resp = get_response(url, headers) video_id_list = get_video_id(resp) for video_id in video_id_list: [video_url, video_title] = get_video_url(video_id, headers) download(video_url, video_title)三.总结

现在我们可以多页下载虎牙视频,不过运行后下载速度有点慢,大家可以试试用异步等方式快速下载,欢迎大家在评论区讨论学习,谢谢大家。

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
全局翻译
全局翻译
下载
喵喵日记本
喵喵日记本
下载
QP浏览器
QP浏览器
下载
mfc110.dll
mfc110.dll
下载
方块历险记iPad版V1.0.5
方块历险记iPad版V1.0.5
下载
你是怎么做到的
你是怎么做到的
下载
轮回无尽
轮回无尽
下载
生存守卫危域
生存守卫危域
下载
垃圾极速清理大师
垃圾极速清理大师
下载
聪明鼠鼠标加速器v2.68绿色版
聪明鼠鼠标加速器v2.68绿色版
下载
神魔战争iPad版V1.6
神魔战争iPad版V1.6
下载
仙子奇踪bt版
仙子奇踪bt版
下载
MailBackupXMac版V1.35
MailBackupXMac版V1.35
下载
Exmo
Exmo
下载
小飞象绘画本电脑版
小飞象绘画本电脑版
下载
万道武神变态版
万道武神变态版
下载