用Python全自动下载抖音视频!

使用Python下载抖音短视频:完整教程与代码解析 抖音作为全球领先的短视频平台,拥有海量的优质内容。然而,抖音官方并未提供直接下载视频的功能,这给一些用户带来了不便。幸运的是,通过Python编程,我们可以实现抖音视频的下载。本文将详细介绍如何使用Python下载抖音短视频,并解析一个完整的代码示例。 阅读详情

都说夏天是恋爱的季节,每天穿梭在人来人往的地铁上,插肩而过很多漂亮的小姐姐。苦逼的码农只能低头刷抖音,抖音上有很多漂亮的小姐姐街拍视频。既然是玩Python,为啥不用Python来全自动下载这些视频呢,今天我们就用Python来实现自动化下载街拍视频。


/ 01 / Charles


用Charles来找视频的API接口,具体操作看历史的当当网那个实战案例,不细说。


640


这里通过滑动抖音App,可以获取到视频的请求信息。


通过多次实验,发现链接的后面是会不停的改变,只有链接的前头始终不变,即「http://v1-dy」「http://v6-dy」「http://v9-dy」不变。


所以在写脚本的时候,可以以这些信息做为链接开头。



/ 02 / mitmproxy


利用mitmproxy中的mitmdump组件,对接Python脚本,用Python实现监听后的处理。


640


这里我只是利用脚本获取链接,并没有直接利用脚本下载视频。


因为我是在mitmdump.exe文件所在的文件夹运行脚本,脚本里导入不了requests模块。


不想搞那些烦人的环境变量,所以只获取链接。


然后再去下载视频,视频链接需要去重,可能会有重复的。


Python脚本如下。




/ 03 / Appium


配置抖音的Appium参数。


640


点击蓝色按钮,手机自动启动抖音App!


接下来操作手机,然后点击Appium的刷新键,获取元素定位代码。


通过本次的实践发现Appium有时并不能很好的获取元素的定位,这可能就跟Web端的iframe页面一样。


所以针对找不到的元素,我直接对手机屏幕位置进行点击。


由于大家手机屏幕大小不同,这个参数肯定是会变化的,所以存在弊端,无法通用。


{  左右滑动切换图片  }

640 640 640


大致操作如上图。UP主的主页图漏了,请自行脑补,Python代码如下。



 

import time
import random
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support import expected_conditions as EC


def main():
    # 设置驱动配置
    server = 'http://localhost:4723/wd/hub'
    desired_caps = {
        'platformName': 'Android',
        'deviceName': 'STF_AL00',
        'appPackage': 'com.ss.android.ugc.aweme',
        'appActivity': '.main.MainActivity',
        # 关闭手机软键盘
        'unicodeKeyboard': True,
        'resetKeyboard': True
    }
    driver = webdriver.Remote(server, desired_caps)
    wait = WebDriverWait(driver, 60)
    # 同意用户隐私协议,点击
    button_1 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/q6')))
    button_1.click()
    # 禁止电话权限,点击
    button_2 = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller:id/permission_deny_button')))
    button_2.click()
    # 禁止位置权限,点击
    button_3 = wait.until(EC.presence_of_element_located((By.ID, 'com.android.packageinstaller:id/permission_deny_button')))
    button_3.click()
    time.sleep(2)
    # 向上滑动,进入抖音视频播放页面
    TouchAction(driver).press(x=515, y=1200).move_to(x=515, y=1000).release().perform()
    # 这里需要设置一个较长时间的延迟,因为抖音有引导操作和提示,需等待片刻
    time.sleep(20)
    # 点击抖音"喜欢"处,以此进入登录界面
    TouchAction(driver).press(x=950, y=800).release().perform()
    # 点击密码登录
    button_4 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/afg')))
    button_4.click()
    # 输入账号
    button_5 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/ab_')))
    button_5.send_keys('你的账号')
    # 输入密码
    button_6 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/aes')))
    button_6.send_keys('你的密码')
    time.sleep(2)
    # 因为会跳出软键盘,会遮挡登录按钮,需点击软键盘取消
    TouchAction(driver).press(x=980, y=1850).release().perform()
    time.sleep(2)
    # 点击登录按钮
    button_7 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/abb')))
    button_7.click()
    time.sleep(2)
    # 登录成功,进入抖音视频界面,点击下方标题栏 "我"
    TouchAction(driver).press(x=990, y=1850).release().perform()
    # 进入个人主页,点击关注处
    button_8 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/a_7')))
    button_8.click()
    # 进入关注栏,点击第二个关注
    button_9 = wait.until(EC.presence_of_element_located((By.XPATH, '    /hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.LinearLayout/android.support.v7.widget.RecyclerView/android.widget.RelativeLayout[2]/android.widget.RelativeLayout[1]')))
    button_9.click()
    # 进入UP主主页,点击第一个视频
    button_10 = wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/aqm')))
    button_10.click()
    # 不断下滑页面,直到底部
    while True:
        TouchAction(driver).press(x=515, y=1247).move_to(x=515, y=1026).release().perform()
        time.sleep(float(random.randint(5, 10)))


if __name__ == '__main__':
    main()


下载视频代码,需要对视频链接去重。



 

import pandas as pd
import requests
import os

num = 0
dom = []
folder_path = "F:/video/"
os.makedirs(folder_path)
df = pd.read_csv('douyin.csv', header=None, names=["url"])

# 对链接去重及去除刚进入抖音获取的视频链接
for i in df['url'][2:]:
    if i not in dom:
        dom.append(i)

# 下载视频
for j in dom:
    url = j
    num += 1
    response = requests.get(url, stream=True)
    filename = str(num) + '.mp4'
    with open('F:\\video\\' + filename, 'ab+') as f:
        f.write(response.content)
        f.flush()
        print(filename + '下载完成')


最后成功获取小姐姐们的全部视频...


640


要是曾经在厂子里的我,那时会这骚操作该多好,哈哈。


其实我想的更多,多数妹子都挺喜欢拍抖音,不过她们应该不会下载这种操作滴。


那么小老弟们的机会就来了,下载下来喜欢的妹子的抖音视频。


然后剪辑出一个「最美瞬间」系列的视频,机会不就来了嘛...


近期热门:

用Python来解读神奇宝贝

花5分钟,菜鸟也能学个设计模式|单例模式

漫画,用Python做了一个女神颜值打分系统


需要源码,点击阅读原文

Python实现超简单【抖音】无水印视频批量下载 我们可以看到上面选中的那个请求,返回的是一串json,我们将内容复制下来看看,搜索返回的json中有关video的字段,通过下图我们就可以看到video里面有个url_list,里面有两个不同的url,这两个url其实就是视频相关的地址了,但是还有点问题,这两个url点进去并不能直接看到视频。其实我们一开始拿到的url就是无水印的,但是链接本身并没重定向到无水印的视频,加上wm之后,url会重定向到有水印的视频。我们刚刚获取了视频主页的链接,现在我们要通过主页链接来获取当前页面下的所有视频。 阅读详情

相关推荐

Python实战:5分钟搞定抖音无水印视频下载(附完整代码)

本文系统介绍了抖音无水印视频下载的多种技术方案,重点解析了抖音视频的获取逻辑与去水印原理。文章提供了从零代码的浏览器插件到可编程的Python脚本的完整实现路径,并附带了详细的代码示例,帮助用户快速构建自己的抖音视频下载工具箱。

weixin_29089057的博客 847

2024 python自动化批量下载抖音无水印去水印视频/图片

2024年了还在用收费的去水印小程序?试试这个几十行代码的自动化批量下载去抖音视频水印,图片水印的脚本吧!!

weixin_62061392的博客 6670

批量下载抖音视频

批量下载抖音视频

hailangou的博客 1595

使用python编写从抖音下载视频的代码

使用 Python 编写从抖音下载视频的代码,可以使用第三方库来帮助你完成这个任务。 其中一种方法是使用 PyDouyin 库,这是一个 Python 库,可以帮助你从抖音下载视频。 要使用 PyDouyin,首先需要安装它,你可以在命令行中使用 pip 命令安装: pipinstall pydouyin ...

weixin_42591908的博客 1882

抖音视频下载工具

这是一个基于Python开发的抖音视频下载工具,可以方便地下载抖音平台上的视频内容。

翱翔-蓝天 1270

Python批量下载 抖音无水印视频!

导读: 本文介绍了如何使用简单的Python爬虫爬取抖音上你喜欢的拍客的所有视频(包含有水印和无水印两种)。代码已上传至公众号后台,回复:抖音即可获得。 一、获取你喜欢的拍客的视频url 即 抖音用户主页的url,我将以罗永浩的主页连接为例(本人第一次下载抖音就是冲着罗永浩 去的,所以也只关注了他一个人) 1.获取主页链接 打开抖音,点进用户的主页面,点击右上角的三个点: 选择分享: 再点击 复制链接即可,我们可以获取如下url: https://v.dou...

爬遍所有网站 3801

Python 全自动下载抖音视频

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。如果我的分享对你有帮助,请关注我,一起向上进击。TikTokDownloader(以下简称TTD)是一个完全免费开源的工具,它基于Python的Requests模块实现,可以用于采集TikTok的主页、视频、图集、原声等数据。此外,它还支持抖音的主页、视频、图集、收藏、直播、...

codingpy的博客 4250

Python获取抖音视频链接

文章目录所需软件Fiddler配置模拟器配置抓包Python提取数据 所需软件 手机模拟器,下面以安卓模拟器(雷电模拟器)为例,下载地址: 官网 Fiddler抓包工具,下载地址: 官网 编程工具,PyCharm,下载地址: 官网,安装教程 xposedinstaller.apk 下载地址: 官网,如果手机安卓版本在 5.0 或更高版本,那么就到这个链接下载,后者的真实下载链接,可以直接点击下载。 JustTrustMe.apk,Xposed+JustTrustMe两者配合,来关闭SSL证书验证 Fid

u010918936的博客 5319

抖音视频批量采集利器:Python脚本实现全自动下载

还在为手动保存抖音视频而耗费时间?抖音视频批量下载助手为你提供了一套完整的自动化解决方案。这款基于Python开发的开源工具能够轻松抓取用户主页的所有作品,建立个人视频资源库,让视频收集变得简单高效。无论是内容创作者、数据分析师还是普通用户,都能通过这款工具大幅提升工作效率。 ## 应用场景解析:批量下载的实际价值 ### 内容创作者素材收集 作为内容创作者,经常需要收集大量视频素材进行二次创

gitblog_00500的博客 841

用 Python 下载抖音无水印视频

说起抖音,大家或多或少应该都接触过,如果大家在上面下载过视频,一定知道我们下载的视频是带有水印的,那么我们有什么方式下载不带水印的视频呢?其实用 Python 就可以做到,下面我们来看一下。 首先,我们打开抖音随意找一个视频,如下图所示: 然后点击分享按钮,找到复制链接选项,如下图所示: 接着,我们点击按钮复制链接,比如我复制的链接为: https://v.douyin.com/JePfx5f/ ,然后我们将链接复制到谷歌浏览器上,按 F12 打开开发者工具,再切换到移动设备,选择 Network,如.

python入门学习进阶教程 1838

电磁波成像技术全解析:从γ射线到无线电波的应用实践

本文全面解析电磁波成像技术,从γ射线到无线电波的应用实践。详细介绍了不同波长电磁波的特性与实用场景,包括医疗影像、工业检测、安防监控等领域。特别探讨了X射线、红外热成像、毫米波雷达等前沿技术的实战应用,为读者提供技术选型指南和操作技巧。

weixin_29305337的博客 293

用Python下载抖音无水印视频!

不知不觉距离小F最开始写的一篇抖音文章,时间也过了一年。用Python全自动下载抖音视频!上面这一篇阅读量是所有文章中阅读量最高的,当然还有另外两篇相关的。用Python生成抖音字符视频...

法纳斯特 2779

当AI换脸遇上内容审核:Facefusion NSFW检测的技术伦理与用户自主权之争

本文探讨了Facefusion开源AI换脸工具中NSFW检测机制的技术伦理困境与用户自主权之争。分析了其多层次防御机制的技术实现与社区规避方法,揭示了开源软件在安全与自由之间的平衡难题,并提出了分层权限设计等社区实践方案。

weixin_29165725的博客 686

python 批量下载视频_python实现抖音视频批量下载

本文实例为大家分享了python实现抖音视频批量下载的具体代码,供大家参考,具体内容如下这里就拿最近很火的抖音视频为例,利用API来实现用户抖音视频的批量下载主要用到的模块有1、requests模块;2、bs4模块;import requestsimport bs4import osimport jsonimport reimport sysimport timefrom contextlib i...

weixin_39531229的博客 1389

为ESXI Host添加v3700 FC存储

物理环境: ESXI Host version 5.1.0 Brocade SAN Switch v3700 Storage 存储和ESXI Host分别用光纤线连接在SAN交换机上 1.查询ESXI Host 的WWN号: 2. SAN交换机上查询存储的WWPN号 SAN交换机: 3.建立zone,添加到cfg文件中 brocade8Gb

haoshuwei531024的专栏 7562

【原创理论】Stochastic Coupled Dyadic System (SCDS):一个用于两性关系动力学建模的随机耦合系统框架

基于二人爱情耦合系统动力学、稳定性与最优策略的综合性理论的数值模拟与分析

weixin_44695861的博客 1134

抖音视频批量下载终极指南:Python脚本实现全自动采集

还在为手动保存抖音视频而烦恼吗?**抖音批量下载助手**为你提供了一套完整的自动化解决方案。这款基于Python开发的开源工具能够轻松抓取用户主页的所有作品,建立个人视频资源库,让视频收集变得简单高效。无论是内容创作者、数据分析师还是普通用户,都能通过这款工具大幅提升工作效率。 ## 为什么传统方式效率低下?🤔 ### 手动下载的三大痛点 1. **时间成本高昂** - 逐个点击保存,一个

gitblog_00244的博客 478

EDA课程实验:《数字逻辑电路》实验四___基于Minisys 平台 VIVADO工具与Verilog语言

(4)使用 Verilog HDL 实现一个分频器 clock_div,输入的是系统提供的 100MHz 频率,输出的是 1Hz 频率,占空比是 1:2,(实际上可以用一个加 1 计数器来实现降频,输入的是一个 100MHz 频率的方波,对这 个方波计数 1 亿次刚好到 1 秒(1Hz),题目要求输出频率占空比是 1:2,也就是这个 1Hz 的 方波高电平和低电平各 500ms,可以采用计数到中间值的时候输出电平翻转。(1)1) 拨动 SW1~0 为 01,按下 P4 按钮,GLD1~0 为 01;

ssjy_的博客 1297

抖音视频批量下载工具完整使用教程

还在为手动下载抖音视频而烦恼吗?想要批量保存喜欢的作品却找不到合适的工具?今天为大家带来一款功能强大的抖音视频批量下载器,让你轻松实现无水印视频的高效下载! ## 问题背景与解决方案 **常见使用痛点**: - 手动保存效率低下,逐个下载耗时费力 - 平台自带水印影响观看体验 - 批量下载需求无法满足,缺乏专业工具支持 **解决方案概述**: 这款开源下载工具支持单个视频、用户主页作品、直播

gitblog_00762的博客 964

ServiceNow Discovery & CMDB Interview Questions and Answers (2025)

【代码】ServiceNow Discovery & CMDB Interview Questions and Answers (2025)

weixin_47584092的博客 910

Oracle EBS FA 创建成批增加执行时间长且报错

摘要 Oracle EBS系统在执行"创建成批增"请求时出现长时间运行并报错(ORA-00603和ORA-03114)。

陈显平的专栏-Oracle EBS 174

抖音批量下载助手:免费高效下载抖音视频的完整指南

抖音批量下载助手是一款专为抖音用户设计的视频下载工具,能够通过简单的配置实现批量下载用户主页的所有公开视频。无论是自媒体创作者需要备份素材,还是普通用户想要收藏喜爱的短视频内容,这款工具都能提供简单高效的解决方案。 ## 工具核心优势与特色功能 ### 智能去重机制 程序通过`history.txt`文件记录已下载视频的MD5值,自动跳过重复内容,有效避免存储空间浪费。每次运行都会显示历史下载

gitblog_00630的博客 1435

手把手教你学Simulink——基于Simulink的PR(比例谐振)控制器在单相整流中的应用

本文详细介绍了基于Simulink的PR(比例谐振)控制器在单相整流系统中的应用。通过与传统PI控制器的对比,阐述了PR控制器在交流信号跟踪中的优势:可实现50Hz正弦电流的无静差跟踪,THD低于2%,功率因数接近1。文章从PR控制器原理出发,提供了Simulink建模的具体步骤,包括主电路搭建、电压外环设计、PR控制器实现方法(推荐MATLAB Function方式)以及SPWM调制。通过仿真验证了PR控制在稳态和负载突变情况下的优越性能,并探讨了工程实践中的电网频率自适应、多谐振PR等关键技术。该教程为

MHD0815的博客 123

使用python、java语言批量下载抖音中我的视频、我喜欢的视频,解析抖音视频,批量下载抖音...

2019-08-09 java版批量下载抖音:新增了入库操作,记录单个视频的详细信息,封面,动态封面,视频id,视频地址等,还存储了视频文件sha1,下载的时候进行比对,重复的视频不下载。避免占用硬盘!https://img-blog.csdnimg.cn/20190805223450132.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5na...

2311

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

告别水印烦恼!这款抖音视频下载神器你必须试试

还在为抖音视频的水印烦恼吗?今天给大家推荐一款**抖音无水印下载**工具,让你轻松保存喜欢的视频内容。无需复杂操作,3行代码就能搞定抖音视频备份,无论是个人收藏还是内容创作,都能满足你的需求。 ## 一、核心价值:为什么选择这款工具 这款工具最大的优势在于**无水印下载**,让你获得原汁原味的视频内容。同时,它还支持批量下载,一次搞定多个视频,大大提高了效率。最重要的是,它完全免费开源,你可以

gitblog_00684的博客 1162

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 用Python来解读神奇宝贝
下一篇: 用Python分析韩国女团喜欢什么单词
菜鸟学Python
博客等级 码龄9年 8062粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值