大家好,我是辰哥~

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

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

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

  1. 用 Redis 搞定游戏中的实时排行榜,附源码!

    原文:segmentfault.com/a/1190000019139010 1. 前言 前段时间刚为项目(手游)实现了一个实时排行榜功能, 主要特性: 实时全服排名 可查询单个玩家排名 支持双维排序 ...

  2. 曝肝三天,两千行Python代码,制作B站视频下载工具(附源码)

    曝肝三天,两千行Python代码,制作B站视频下载工具(附源码) 文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_vide ...

  3. java文件批量改名代码_[原创]JAVA版批量更名程序(附源码)(要求加分)

    这是上学时JAVA课程的课程实践,因为学习好,老师让写一个比较有难度的程序出来,不要随便写个简单的来应付. 当时也不知道什么类型的程序在JAVA里比较有难度,正好在JAVA中文论坛里看到有人问用JAV ...

  4. python3GUI--实用!B站视频下载工具(附源码)

    文章目录 一.准备工作 二.预览 1.启动 2.解析 3.下载中 4.下载完成 5.结果 三.设计流程 1.bilibili_video_spider 2.视频json的查找 四.源代码 1.Bili ...

  5. web/java实现多种格式视频上传、转码、截图、播放、下载等功能附源码(详细)

    web /java 实现多种格式视频上传.转码.播放.下载 1.前言 前段时间一直在做一个生物资源共享平台,采用SSM框架技术,其中涉及一个模块,是关于视频资源的播放. 本来不是很大的问题,但是无奈用 ...

  6. Android 毕业设计高仿抖音(视频类App)(内附源码)

    背景 抖音这么火,我就想着要不自己也做一个吧,于是就有了我的自制抖音.喜欢的可以点个star或关注一下,以后会保持维护和优化. 主要效果演示 安装包: 整体设计 由于没有接口获取数据,使用的方式是将图 ...

  7. python3网络爬虫--爬取b站视频评论用户信息(附源码)

    文章目录 一.准备工作 1.工具 二.思路 1.整体思路 2.爬虫思路 三.分析网页 1.分析网页加载方式 2.分析数据接口 3.获取oid 四.撰写爬虫 五.存储数据 六.总结 你爱我,我爱你,蜜雪 ...

  8. b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】

    python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...

  9. 图像sobel梯度详细计算过程_视频处理之Sobel【附源码】

    边缘检测是检测图像中的一些像素点,它们周围的像素点的灰度发生了急剧的变化,我们认为在这过程中,图像中的物体不同导致了这一变化,因此可以将这些像素点作为一个集合,可以用来标注图像中不同物体的边界.边缘区 ...

  10. 基于SSM的在线视频教育网站系统【附源码】

    项目概述 基于SSM的在线视频教育网站系统设计与实现.系统分为管理员与普通用户两种角色.非maven项目. 1)登录模块 在进入系统首页后,首先看到的是登录界面,该界面会提供注册用户的功能,在登陆界面 ...

最新文章

  1. itmz文件如何打开_如何使用proteus8打开低版本proteus7的仿真文件?
  2. 在不使用notifyDataSetChanged()方法,怎样选中Item中的内容
  3. 人人都是 DBA(VII)B 树和 B+ 树
  4. 计算机管理窗口下的菜单,win7电脑右键打不开管理菜单的详细攻略
  5. 使用存储过程将文本导入数据库表
  6. STM32L1X系列GPIO运用
  7. Redis 命令--Redis列表(List))
  8. 集合框架之Map LinkedHashMap
  9. 项目中的异常处理应不应该获取后重新抛?
  10. 周末送新书 | 一文了解预训练语言模型!
  11. 电脑主板原理图讲解(电脑主板构造图文详解)CPU和北桥芯片(随着发展有的北桥已经被设计到CPU内部了)南桥芯片
  12. 【组队学习】【32期】组队学习内容详情
  13. 对大学计算机课程的认识 感想,大学计算机基础学习感想复习课程.pdf
  14. 绕过微软WGA正版验证(蓝色五角星)的几则技巧
  15. IBM Platform LSF在IC行业内的使用
  16. 炉石数据库以及django admin
  17. node.js仿知乎
  18. CSS样式-网页响应式设计
  19. win10黑屏Duilib资源加载失败
  20. 在WhatsApp中如何发起群发?

热门文章

  1. win 安装 Xshell 5
  2. 2010 模板下载 罗斯文_选择并使用 Access 模板
  3. 计算机软考论文网络真题,软考历年真题在线测试系统测试与开发
  4. 单片机(ISIS 7 Professional):简易8x8矩阵LED灯代码项目
  5. 创建mysql数据库远程工具连接及ER图工具mysqlWorkbench使用
  6. 淘宝店铺所有商品API接口(店铺所有商品列表接口)
  7. 酷q插件可以用c语言开发么,使用酷Q SDK开发QQ机器人
  8. NRC词典应用实例——英文文本情感分析
  9. 解决库仑计初始化卡死问题
  10. MATLAB机械动力分析,用MATLAB实现机械动力学