【Python】批量下载抖音视频

news2025/1/9 22:02:06

1、代码

import os
import re
from concurrent.futures import ThreadPoolExecutor
import requests

def get_urls(max_cursor):
	# 请求头 (页面获取)
    headers = {
        'Cookie': '',
        'Referer': '',
        'User-Agent': ''
    }
    # 请求地址(页面获取)
    url = ''

	# max_cursor 为分页游标
    pattern = r'max_cursor=(\d+)'
    match = re.search(pattern, url)
    if match:
        result = match.group(1)
        url = url.replace(result, str(max_cursor))

	# 获取视频列表
    res = requests.get(url, headers=headers)

    data = res.json()

    d = {}
    aweme_list = data.get("aweme_list")
    for aweme in aweme_list:
        # 防止有视频同名:加上aweme_id
        title = aweme.get("desc") + aweme.get("aweme_id")
        url = aweme.get("video").get("play_addr").get("url_list")[-1]
        d[title] = url

	# 是否有下一页
    has_more = data.get("has_more")
    if has_more == 1:
        dd = get_urls(data.get("max_cursor"))
        d.update(dd)

    return  d

def download(name, url):
    res = requests.get(url)
    # 视频存储
    with open(f"../mv/{name}.mp4", "wb") as f:
        f.write(res.content)
    print('success --> address: ', url)

def main():
	# 获取所有视频地址
    d = get_urls(0)

	# 文件存放路径
    os.makedirs('../mv', exist_ok=True)

	# 多线程下载视频
    with ThreadPoolExecutor(10) as t:
        for item in d.items():
            t.submit(download,item[0], item[1])

if __name__ == '__main__':
    main()

2、安装依赖

终端执行以下命令:

pip install requests

3、参数获取

浏览器按F12(或者鼠标右键,点击检查) ⇒ 点击网络 ⇒ 在输入框输入post,选择第一个post请求

在常规里可以找到请求网址,就是 url

在请求标头里可以找到 CookieRefererUser-Agen这三个参数,ctrl+c v 替换即可。

在这里插入图片描述

4、视频存储路径说明

上述代码里有一行是

with open(f"../mv/{name}.mp4", "wb") as f:

视频存储在当前目录的上一级目录下的mv目录中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2257099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

刚入行Java,如何深入学习JVM底层原理?

对于JVM,我想大部分小伙伴都是要面试了才会去学,其余时间基本不会去看(掐指一算,你们书架上面的深入理解Java虚拟机第三版应该都一层灰了吧【手动狗头】)。但值得一说的是,当你工作多年之后,你遇…

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码:主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码:使用布隆过滤器 四、缓存雪崩4…

java中的数组(2)

大家好,我们今天继续来看java中数组这方面的知识点,那么话不多说,我们直接开始。 一.数组的使用 1.数组中元素访问 数组在内存中是一段连续的空间,空间的编号都是从0开始的,依次递增,数组可以通过下标访问其任意位置的元素. 也可以进行修改…

Qt入门7——Qt事件

目录 1. Qt事件介绍: 2. 事件的处理 示例1:鼠标进入(enterEvent)与离开事件(leaveEvent) 示例2:鼠标点击事件(mousePressEvent) 示例3:鼠标移动事件(mouseMoveEvent) 3. 按键事件 4. 定时器 5. 窗口事件 1. Qt事件介绍&a…

PyQt事件机制练习

一、思维导图 二、代码 import sysfrom PyQt6.QtTextToSpeech import QTextToSpeech from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QLineEdit from PyQt6 import uic from PyQt6.QtCore import Qt, QTimerEvent, QTimeclass MyWidget(QWidget):d…

【河南】《关于省级政务信息化建设项目支出预算标准的规定(试行)》(豫财预〔2020〕81号)-省市费用标准解读系列25

《关于省级政务信息化建设项目支出预算标准的规定(试行)》(豫财预 〔2020〕81号)是河南省财政厅2020年8月27日发布的信息化项目预算标准(了解更多可直接关注我们咨询)。该标准旨在加强河南省省级部门预算管理,规范省级…

oscp备考,oscp系列——Kioptix Level 3靶场

Kioptix Level 3 oscp备考,oscp系列——Kioptix Level 3靶场 nmap扫描 主机发现 └─# nmap -sn 192.168.80.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-09 00:33 CST Nmap scan report for 192.168.80.1 Host is up (0.00014s latency). MAC…

活动|华院计算董事长宣晓华应邀出席2024科创大会并作圆桌嘉宾

2024科创大会在上海举行,由中央广播电视总台和上海市人民政府共同主办。本次大会以“创新驱动 新质未来”为主题,来自知名院校、科研机构的专家学者以及科技企业、金融机构的相关负责人共聚一堂,探讨人工智能、生物医药等产业应用前景&#x…

Robust Univariate Mean Estimation算法简介

Robust Univariate Mean Estimation 是一种统计算法,主要用于在单变量场景中估计样本的均值,同时对异常值(outliers)具有鲁棒性。传统的均值估计使用样本的算术平均值,但它对异常值高度敏感。为了缓解这个问题&#xf…

C/C++流星雨

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/C…

MySQL——buffer poll

为什么要有buffer poll? 如果没有buffer poll,每次读取数据的时候都是从磁盘上读的,这样效率是很差的的。 所以有了提高效率的方式,就加上了一个缓存——buffer poll 所以,当我们读取数据的时候就有以下的方式 当读…

2025年山东省职业院校技能大赛“信息安全管理与评估”(山东省) 任务书

2025年山东省职业院校技能大赛“信息安全管理与评估”(山东省 任务书 模块一网络平台搭建与设备安全防护任务1:网络平台搭建 (50分)任务2:网络安全设备配置与防护(250分) 模块二网络安全事件响应、数字取证…

ERROR: KeeperErrorCode = NoNode for /hbase/master

原因分析 通过上面的情景模拟,我们可以看到报错的原因在于zookeeper中出现问题,可能是zookeeper中的/hbase/master被删除,或者是在hbase集群启动之后重新安装了zookeeper,导致zookeeper中的/hbase/master节点数据异常。 1. 停止…

ElasticSearch7.8学习笔记

1. ElasticSearch概述 1.1 ElasticSearch是什么 Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到…

CSS制作字体炫彩效果

目录 序言一、思路二、代码实现 序言 本节内容主要来讲解一下炫彩字体的实现,主要通过使用 background-clip以及background-position来实现,那么话不多说开始本节内容的学习吧! 一、思路 添加盒子以及内容使用 background-clip属性&#x…

如何防止短信盗刷和短信轰炸?

短信盗刷和短信轰炸是项目开发中必须要解决的问题之一,它的优先级不亚于 SQL 注入的问题,同时它也是面试中比较常见的一个经典面试题,今天我们就来看下,如何防止这个问题。 1.概念介绍 短信盗刷和短信轰炸的概念如下&#xff1a…

ios逆向某新闻 md5+aes

本期的案例比较简单,也许是ios逆向算法本来就比较简单的原因,所以前面我就多扯一些爬虫和逆向的东西。之前写的文章都是js逆向和android逆向的案例,这也是首篇ios的案例,所以会从入门开始讲起。 3大逆向对比 首先爬虫工程师大部…

SpringBoot【一】零基础入门 springboot 及 idea 搭建

一、前言 springboot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解&#xff0…

2024年超大跨径钢结构桥梁创新技术论坛暨钢桥联盟年度工作会议顺利召开

12月5日,由中交公路规划设计院有限公司、装配化钢结构桥梁产业技术创新战略联盟主办,保利长大工程有限公司、中交第二航务工程局有限公司、中交第二公路工程局有限公司、中交路桥建设有限公司、中交西安筑路机械有限公司、南京现代综合交通实验室、巨力锁…

win10上部署win11记事本

win10上部署win11记事本 原因 win10的老用户们, 不肯升级win11, 绝对是有留恋的东西吧,就想win7用户那样, 但是win11在日益更新, 特别是记事本, 增加了很多好用的功能, 比如多标签页, 但是不想升级win11, 还想用, 怎么办? 我在网上找到了解决方案, 接下来, 我们来操作一下吧…