用Python全自动下载抖音视频! 2022-02-02 17:15 410阅读 0赞 为什么写这篇文章,主要也是因为看了网易云课堂的一篇软广。 「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+鹅厂的AI,一晚上关注了一千多个漂亮小姐姐。 充分体现了厂子里的大学生和工人们的不同,这里我不得不说一声×××牛皮... 曾经的我也独自一人在那个诺大的工厂思考人生,思考着我该何去何从。 ![1545126244998267.jpg][] 记得那时我也靠着刷抖音,度过那段煎熬的日子。 只不过没有上面那位大佬那么厉害而已,我是人工识别漂亮的小姐姐... 即使现在的我也注册了鹅厂的AI账号,可我还是不会用。 那么就先来点简单的,提前关注好,然后利用Python实现自动化下载街拍视频!!! **/ 01 / Charles** 用Charles来找视频的API接口,具体操作和之前当当网那个案例一样,不细说。 ![1545126245126560.jpg][] 这里通过滑动抖音App,可以获取到视频的请求信息。 通过多次实验,发现链接的后面是会不停的改变,只有链接的前头始终不变,即「http://v1-dy」「http://v6-dy」「http://v9-dy」不变。 所以在写脚本的时候,可以以这些信息做为链接开头。 **/ 02 / mitmproxy** 利用mitmproxy中的mitmdump组件,对接Python脚本,用Python实现监听后的处理。 ![1545126245954770.jpg][] 这里我只是利用脚本获取链接,并没有直接利用脚本下载视频。 因为我是在mitmdump.exe文件所在的文件夹运行脚本,脚本里导入不了requests模块。 不想搞那些烦人的环境变量,所以只获取链接。 然后再去下载视频,视频链接需要去重,可能会有重复的。 Python脚本如下。 def response(flow): urls = \['http://v1-dy', 'http://v3-dy', 'http://v6-dy', 'http://v9-dy'\] \# 对url进行筛选,只选取视频的url for url in urls: if url in flow.request.url: print('\\n\\n抖音视频\\n\\n') with open('douyin.csv', 'a+', encoding='utf-8-sig') as f: f.write(flow.request.url + '\\n') **/ 03 / Appium** 配置抖音的Appium参数。 ![1545126245928499.jpg][] 点击蓝色按钮,手机自动启动抖音App! 接下来操作手机,然后点击Appium的刷新键,获取元素定位代码。 通过本次的实践发现Appium有时并不能很好的获取元素的定位,这可能就跟Web端的iframe页面一样。 所以针对找不到的元素,我直接对手机屏幕位置进行点击。 由于大家手机屏幕大小不同,这个参数肯定是会变化的,所以存在弊端,无法通用。 \{ 左右滑动切换图片 \} ![1545126246578840.jpg][] ![1545126246772490.jpg][] ![1545126246192406.jpg][] 大致操作如上图。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 + '下载完成') 最后成功获取小姐姐们的**全部****视频**... ![1545126247235187.jpg][] 要是曾经在厂子里的我,那时会这骚操作该多好,哈哈。 其实我想的更多,多数妹子都挺喜欢拍抖音,不过她们应该不会下载这种操作滴。 那么小老弟们的机会就来了,下载下来喜欢的妹子的抖音视频。 然后剪辑出一个「最美瞬间」系列的视频,机会不就来了嘛... [1545126244998267.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126244998267.jpg [1545126245126560.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126245126560.jpg [1545126245954770.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126245954770.jpg [1545126245928499.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126245928499.jpg [1545126246578840.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126246578840.jpg [1545126246772490.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126246772490.jpg [1545126246192406.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126246192406.jpg [1545126247235187.jpg]: https://www.itcodemonkey.com/data/upload/portal/20181218/1545126247235187.jpg 文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。
相关 python3 抖音短视频链接去水印下载视频到本地 > 基于近段时间对抖音,快手,秒拍等视频抓取一直想搞一下。加了个QQ群,里面全是自媒体,就是抖音、快手、秒拍的视频搬运工,把一个平台搬到另外一个平台上,去除水印。降低被干掉的危 £神魔★判官ぃ/ 2021年09月15日 23:42/ 0 赞/ 393 阅读
相关 用Python全自动下载抖音视频! 为什么写这篇文章,主要也是因为看了网易云课堂的一篇软广。 「用Python在抖音扒了这些高颜值女神后,突然成了人生赢家」,文中简述了一名工程师利用Python+ADB+ 刺骨的言语ヽ痛彻心扉/ 2022年02月02日 17:15/ 0 赞/ 411 阅读
相关 用 Python 实现抖音尬舞机 如今说到体感游戏,大家一定都不陌生,比如微软的 Kinect、任天堂的 Switch,都曾是游戏业的革命性产品。而另一款网红产品—抖音,也在去年底上线过一个“尬舞机”的音乐体感 布满荆棘的人生/ 2022年04月17日 09:55/ 0 赞/ 158 阅读
相关 python爬取快手、抖音视频的评论 有需要的可以加QQ:1016401546 代码百度云下载: 链接:https://pan.baidu.com/s/1wkpdY7MVyciwAVtzHnisVQ 雨点打透心脏的1/2处/ 2022年10月14日 09:11/ 0 赞/ 2293 阅读
相关 教你如何使用Python下载抖音各大V视频 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于Python七号 ,作者 somenzz P 你的名字/ 2022年10月28日 11:57/ 0 赞/ 132 阅读
相关 抖音快手视频爬取代码(源代码下载) \\有问题加QQ:1016401546(说明来意) 源代码下载: 链接:https://pan.baidu.com/s/12gFPgtci4BBBDrQDk3q8 「爱情、让人受尽委屈。」/ 2022年11月03日 12:22/ 0 赞/ 735 阅读
相关 一篇文章教会你使用Python下载抖音无水印视频 今天小编要跟大家分享的是,利用Python如何下载抖音无水印的视频;大家可能要问了,这个有什么用呢?当然有用了。那么有什么用呢?下面小编跟大家详细说说。 众所周知,由于如今短 偏执的太偏执、/ 2022年11月05日 11:06/ 0 赞/ 122 阅读
相关 Python实现超简单【抖音】无水印视频批量下载 前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:python乱炖 PS:如有需要P 短命女/ 2022年11月20日 19:56/ 0 赞/ 138 阅读
相关 用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) 抖音很火,楼主使用python随机爬取抖音视频,并且无水印下载,人家都说天下没有爬不到的数据,so,楼主决定试试水,纯属技术爱好,分享给大家。。 1.楼主首先使用Fiddle 喜欢ヅ旅行/ 2022年11月20日 21:00/ 0 赞/ 695 阅读
相关 Python爬虫---爬取抖音等短视频 前言 最近一直想要写一个抖音爬虫来批量下载抖音的短视频,但是经过几天的摸索我发现了一个很严重的问题......抖音实在是难爬!从一开始的网页分析中就有着很多的坑,但是这几 ╰+哭是因爲堅強的太久メ/ 2022年12月17日 18:56/ 0 赞/ 228 阅读
还没有评论,来说两句吧...