Python爬取虎牙视频
前言:
虎牙有很多优质的视频,周末无事嘛,来采一些优质博主发布的优质视频养养眼。今天爬的影视板块,有些电影还是有回忆杀的。虎牙视频地址:https://v.huya.com/。
思路:
先点开虎牙视频的‘影视’链接,选择‘最多播放’,这是今天要采的板块儿;
点开一个单独的视频,跳转到视频播放页面,F12(chrome浏览器),找到network-media,视频地址出现;
选中视频地址中的部分字符串,在开发者工具里查找,查找视频真实地址的来源,也就是视频真实地址的存放地址,爬虫需要请求的地方;
视频存放地址的请求地址:https://liveapi.huya.com/moment/getMomentContent?callback=jQuery1124024533350877780635_1652492984447&videoId=663219021&uid=1197912393&_=1652492984458;
多点开几个,发现只有videoId=663219021这个字段会变化;
规律出现;视频列表页-视频播放页-视频请求的播放地址-播放地址找播放源-python请求播放源-提取json数据
图片配合思路:


接下来要做的就是利用Python构造请求视频播放源,然后提取想要的数据。
上码:
函数执行顺序:
1, _main()主函数;
2,调用Python多线程的高级模块concurrent.futures.ThreadPoolExecutor
3,parse_page()解析视频列表页面函数;
4,get_json() 提取视频源页面json数据函数;
5,save_media() 保存视频函数;
6,get_response() 获取网页响应函数;
因为请求视频源页面需要cookie,也就是需要登录,所以第一个函数get_response()并不能完成视频数据源的请求任务,于是多写了一个获取网页响应数据(请求视频播放源的数据)的函数get_json()。
两张截图,显示程序运行正常:


打完收工。昨天RNG重赛了,因为拳头官方收到隔壁赛区的LCK的投诉,说*aker和小*布的ping值达到了80,影响了比赛结果。然后昨天我gala又拿了个五杀。就问要拿几个五杀才能不重赛。我要去剪五杀了。