当前位置: 首页 > article >正文

【Python】批量下载抖音视频

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.kler.cn/a/429083.html

相关文章:

  • 安装httpd
  • 反转字符串中的单词 II:Swift 实现与详解
  • Sqlmap入门
  • javaEE初阶————多线程初阶(2)
  • HTML应用指南:利用GET请求获取全国特斯拉充电桩位置
  • OSPF小实验
  • 通过ThinkPad小红点键盘左右滑动页面
  • OpenCV 图像变换与处理实战
  • 2.Flink的项目初始化和Hello-world
  • 「Mac玩转仓颉内测版47」小学奥数篇10 - 数列求和
  • 电脑无法识别usb设备怎么办?电脑无法识别usb解决方法
  • 基于STM32的DS18B20温度报警器_可调上下限Proteus仿真设计(仿真+程序+设计报告+讲解视频)
  • 鸿蒙ZRouter动态路由框架—服务路由
  • java+springboot+mysql游乐园管理系统
  • 重生之我在学Vue-- Vue3 学习路径总览
  • 生成SSH秘钥文件
  • Python实现ARIMA-LSTM回归模型预测股票价格项目实战
  • 深入了解架构中常见的4种缓存模式及其实现
  • Linux —— 管理文件
  • yolov10 生成json 自动标注
  • 《Python数据分析:活用pandas库》学习笔记Day1:Panda DataFrame基础知识
  • k8s集群环境时间同步
  • Ethernet 系列(10)-- 基础学习::UDP
  • 突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!
  • 【Linux系统】Ubuntu 缓冲区机制
  • 【在Linux世界中追寻伟大的One Piece】HTTP cookie