搞定短视频!批量下载快手视频(附源码)

简介: 相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!

大家好,我是辰哥~

相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!

01 获取搜索链接

编写过接口或者开发过网站的小伙伴都知道,对一个服务器上的资源进行请求时,是通过访问链接(接口),服务器进行响应返回数据。

1.搜索请求链接

因此,我们第一步先获取到搜索的请求链接,这里辰哥通过抓取数据包的方式进行获取。

这里通过mitmproxy抓取某手小程序,如果不清楚这个技术操作的小伙伴,可以参考我之前的一篇文章(以【某程旅行】为例,讲述小程序爬虫技术),该文章从0到1讲解了如何使用mitmproxy采集小程序。

比如搜索:民谣,在抓包页面查看数据包,找到下面这个数据包

点击数据包

可以看到搜索链接的请求是post方式,以及请求头headers和请求参数,请求参数中keyword是搜索的关键词,通过修改keyword就可以获取到不同的内容。

2.分析数据包

通过查看返回的数据,可以发现所有的视频内容都在字段feeds中

提取字段:视频地址、用户名、封面图、视频名称

mp4_url = i['mainMvUrls'][0]['url']
userName = i['userName']
pic_url = i['coverUrls'][0]['url']
caption = i['caption']

02 请求数据

清楚了数据包的请求方式和参数,以及返回的数据,接着我们开始通过Python去构造请求和处理响应数据。

请求头和请求参数

headers = {
    'content-type':'application/json',
    'cookie':'自己的cookie'
}
s = json.dumps({
    "keyword": "民谣",
    "pcursor": "",
    "ussid": ""
})

请求地址:

url = 'https://wxmini-api.uyouqu.com/rest/wd/search/feed'
r = requests.post(url, data=s,headers=headers).json()

打印输出结果:

03 保存数据

我们将视频和对应的封面图下载保存到本地,这里新建两个函数,一个是下载视频,一个是下载封面图。

下载视频

#下载视频
def download_mp4(mp4_name,mp4_url):
    dir = str(time.strftime('%y%m%d', time.localtime()))
    dir_path = "/"+dir
    # 判断文件夹是否存在
    if not os.path.exists(dir_path):
        os.mkdir(dir_path)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
    }
    r = requests.get(mp4_url, headers=headers, stream=True)
    if r.status_code == 200:
        # 截取图片文件名
        with open(dir_path+"/"+mp4_name+".mp4", 'wb') as f:
            f.write(r.content)

下载封面图

#下载图片
def download_img(img_name,img_url):
    dir = str(time.strftime('%y%m%d', time.localtime()))
    dir_path = "/"+dir
    # 判断文件夹是否存在
    if not os.path.exists(dir_path):
        os.mkdir(dir_path)
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'
    }
    r = requests.get(img_url, headers=headers, stream=True)
    if r.status_code == 200:
        # 截取图片文件名
        with open(dir_path+"/"+img_name+".jpg", 'wb') as f:
            f.write(r.content)
 
 

视频和封面图都保存到当天日期命名的文件夹中,如果没有该文件夹则自动创建。

调用这两个函数

 #开始下载图片
download_img(caption,pic_url)
#开始下载视频
download_mp4(caption,mp4_url)

执行结束后,保存结果:

可以看到封面图和视频都保存成功!其名为是以视频名称对两者进行命名。

04 小结

本文讲解了某手搜索视频下载的技术,对于新手学习来说还是一个不错的可以练习的小爬虫,想学习的小伙伴,一定要动手尝试一定要动手尝试一定要动手尝试!

本文的源码地址: https://gitee.com/lyc96/kuaishoushipinxiazai
相关文章
|
小程序 Shell Linux
workman(二)thinkphp5.0安装websocket插件workerman
首先说明一下我使用的PHP框架是thinkphp5.0。 当然,workerman这个插件不是只有thinkphp5.0可以使用。 具体的安装方法,thinkphp5.0的官方手册中是给出了明确的说明 请移步《thinkphp5.0官方手册》
465 0
|
负载均衡 算法 Java
So easy! 教你实现自定义负载均衡策略!
So easy! 教你实现自定义负载均衡策略!
1533 0
kde
|
Docker 容器 文件存储
飞牛fnOS Docker镜像加速配置全攻略
本文介绍了如何在飞牛fnOS中配置Docker镜像加速服务,通过设置轩辕镜像仓库加速器,提升镜像拉取速度与稳定性。内容涵盖配置前准备、加速源设置、首选加速源调整及使用指南,帮助用户高效完成镜像操作。
kde
1094 56
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
255126 0
|
3月前
|
人工智能 缓存 搜索推荐
手把手基于ModelScope MCP协议实现AI短视频创作:零代码自动化工作流
本文介绍了基于ModelScope MCP协议的AI视频生成解决方案,涵盖核心机制解析、零代码工作流搭建、性能优化策略及全链路异常处理。通过统一上下文描述符抽象异构AI服务,实现图像生成、语音合成与视频剪辑的自动化编排。结合缓存优化与错误重试机制,大幅提升生成效率(如5分镜视频从91.7s降至22.4s)。最后展示《夏日海滩》生成案例,并探讨个性化风格迁移与商业场景集成等进阶方向,揭示零代码本质为服务、流程与资源的三层抽象。
529 18
|
JavaScript Linux Android开发
mac环境下搭建frida环境并连接网易mumu模拟器
这篇文章介绍了如何在mac环境下搭建Frida环境,并详细说明了如何连接网易MuMu模拟器进行动态分析。
787 1
|
11月前
|
安全 数据挖掘 API
快手小店详情API接口的获取与应用
在数字化时代,电商平台竞争激烈,API接口作为连接不同系统和服务的桥梁,已成为电商生态中不可或缺的一部分。本文详细介绍快手小店详情API接口的获取与应用,帮助开发者和企业提升业务效率和用户体验。涵盖API接口定义、主要应用场景、注册与认证流程、调用方法及实际应用案例,提供最佳实践建议。
423 1
|
数据采集 JSON API
深入解析:抖音视频标题的Python爬虫提取方法
深入解析:抖音视频标题的Python爬虫提取方法
|
JSON 数据格式 网络架构
技术心得:快手的小视频爬取
技术心得:快手的小视频爬取
645 1
|
XML 设计模式 Java
springboot创建并配置环境3 - 配置扩展属性(下)
springboot创建并配置环境3 - 配置扩展属性(下)
springboot创建并配置环境3 - 配置扩展属性(下)