爬取某牙视频

爬取页面链接:游戏视频_游戏攻略_虎牙视频

爬取步骤:点进去一个视频播放,查看media看有没有视频,发现没有。在xhr中发现有许多ts文件,但这种不是很长的视频一般都有直接的播放链接,所以目标还是找直接的链接。在搜索中搜索ts文件的某一个参数,或直接搜m3u8可以找到getmonment的包,里面有下载的链接。而这个包的链接与视频id有关

一页如何下载:在主界面找到含有多个视频id的包,爬取视频id和视频名称,再循环将id赋值给getmonment的包的链接,实现一页下载。

多页下载:观察主界面的包找url的规律即可。

代码展现:

python 复制代码
import requests
import re
import os
from tqdm import tqdm
filename = 'video虎牙\\'
if not os.path.exists(filename):
    os.mkdir(filename)
url = 'https://www.huya.com/video/g/all?set_id=37&order=hot&page=1'
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}

response = requests.get(url=url,headers=headers).text

id_list = re.findall('\{"vid":(.*?),',response)


for id in tqdm(id_list):
    headers1 = {
        "Referer":"https://www.huya.com/",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"

    }
    link = f'https://liveapi.huya.com/moment/getMomentContent?videoId={id}&uid=&_=1708997648767'
    json_data = requests.get(url=link,headers=headers).json()
    video_name = json_data['data']['moment']['title']
    video_url = json_data['data']['moment']['videoInfo']['definitions'][0]['url']
    print(f'正在下载:{video_name}')
    video_content = requests.get(url=video_url,headers=headers1).content
    with open(filename+video_name+'.mp4','wb') as f:
        f.write(video_content)

结果展现:

相关推荐
kishu_iOS&AI2 小时前
深度学习 —— 损失函数
人工智能·pytorch·python·深度学习·线性回归
好运的阿财2 小时前
OpenClaw工具拆解之canvas+message
人工智能·python·ai编程·openclaw·openclaw工具
wengqidaifeng2 小时前
python启航:1.基础语法知识
开发语言·python
观北海2 小时前
Windows 平台 Python 极简 ORB-SLAM3 Demo,从零实现实时视觉定位
开发语言·python·动态规划
FreakStudio2 小时前
做了个Claude Code CLI 电子宠物:程序员的实体监工代码搭子
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
柴米油盐那点事儿2 小时前
python+mysql+bootstrap条件搜索分页
python·mysql·flask·bootstrap
AC赳赳老秦3 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
Ulyanov4 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
刀法如飞4 小时前
一款Python语言Django框架DDD脚手架,助你快速搭建项目
python·ddd·脚手架
刀法如飞4 小时前
一款Python语言Django框架DDD脚手架,适合中大型项目
后端·python·领域驱动设计