搞定短视频!批量下载快手视频(附源码)
大家好,我是辰哥~
相信大家都接触了短视频平台,比如某音、某手等平台,竟然大家都熟悉了,那么今天辰哥分享的技术是:在某手上搜索视频,并实现下载!
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
搞定短视频!批量下载快手视频(附源码)相关推荐
- 用 Redis 搞定游戏中的实时排行榜,附源码!
原文:segmentfault.com/a/1190000019139010 1. 前言 前段时间刚为项目(手游)实现了一个实时排行榜功能, 主要特性: 实时全服排名 可查询单个玩家排名 支持双维排序 ...
- 曝肝三天,两千行Python代码,制作B站视频下载工具(附源码)
曝肝三天,两千行Python代码,制作B站视频下载工具(附源码) 文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_vide ...
- java文件批量改名代码_[原创]JAVA版批量更名程序(附源码)(要求加分)
这是上学时JAVA课程的课程实践,因为学习好,老师让写一个比较有难度的程序出来,不要随便写个简单的来应付. 当时也不知道什么类型的程序在JAVA里比较有难度,正好在JAVA中文论坛里看到有人问用JAV ...
- python3GUI--实用!B站视频下载工具(附源码)
文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_video_spider 2.视频json的查找 四.源代码 1.Bili ...
- web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)
web /java 实现多种格式视频上传.转码.播放.下载 1.前言 前段时间一直在做一个生物资源共享平台,采用SSM框架技术,其中涉及一个模块,是关于视频资源的播放. 本来不是很大的问题,但是无奈用 ...
- Android 毕业设计高仿抖音(视频类App)(内附源码)
背景 抖音这么火,我就想着要不自己也做一个吧,于是就有了我的自制抖音.喜欢的可以点个star或关注一下,以后会保持维护和优化. 主要效果演示 安装包: 整体设计 由于没有接口获取数据,使用的方式是将图 ...
- python3网络爬虫--爬取b站视频评论用户信息(附源码)
文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析网页加载方式 2.分析数据接口 3.获取oid 四.撰写爬虫 五.存储数据 六.总结 你爱我,我爱你,蜜雪 ...
- b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...
- 图像sobel梯度详细计算过程_视频处理之Sobel【附源码】
边缘检测是检测图像中的一些像素点,它们周围的像素点的灰度发生了急剧的变化,我们认为在这过程中,图像中的物体不同导致了这一变化,因此可以将这些像素点作为一个集合,可以用来标注图像中不同物体的边界.边缘区 ...
- 基于SSM的在线视频教育网站系统【附源码】
项目概述 基于SSM的在线视频教育网站系统设计与实现.系统分为管理员与普通用户两种角色.非maven项目. 1)登录模块 在进入系统首页后,首先看到的是登录界面,该界面会提供注册用户的功能,在登陆界面 ...
最新文章
- itmz文件如何打开_如何使用proteus8打开低版本proteus7的仿真文件?
- 在不使用notifyDataSetChanged()方法,怎样选中Item中的内容
- 人人都是 DBA(VII)B 树和 B+ 树
- 计算机管理窗口下的菜单,win7电脑右键打不开管理菜单的详细攻略
- 使用存储过程将文本导入数据库表
- STM32L1X系列GPIO运用
- Redis 命令--Redis列表(List))
- 集合框架之Map LinkedHashMap
- 项目中的异常处理应不应该获取后重新抛?
- 周末送新书 | 一文了解预训练语言模型!
- 电脑主板原理图讲解(电脑主板构造图文详解)CPU和北桥芯片(随着发展有的北桥已经被设计到CPU内部了)南桥芯片
- 【组队学习】【32期】组队学习内容详情
- 对大学计算机课程的认识 感想,大学计算机基础学习感想复习课程.pdf
- 绕过微软WGA正版验证(蓝色五角星)的几则技巧
- IBM Platform LSF在IC行业内的使用
- 炉石数据库以及django admin
- node.js仿知乎
- CSS样式-网页响应式设计
- win10黑屏Duilib资源加载失败
- 在WhatsApp中如何发起群发?
热门文章
- win 安装 Xshell 5
- 2010 模板下载 罗斯文_选择并使用 Access 模板
- 计算机软考论文网络真题,软考历年真题在线测试系统测试与开发
- 单片机(ISIS 7 Professional):简易8x8矩阵LED灯代码项目
- 创建mysql数据库远程工具连接及ER图工具mysqlWorkbench使用
- 淘宝店铺所有商品API接口(店铺所有商品列表接口)
- 酷q插件可以用c语言开发么,使用酷Q SDK开发QQ机器人
- NRC词典应用实例——英文文本情感分析
- 解决库仑计初始化卡死问题
- MATLAB机械动力分析,用MATLAB实现机械动力学