专栏首页机器学习算法与Python学习抖音爬虫 | 手把手教你下载指定的Douyin)号的视频

抖音爬虫 | 手把手教你下载指定的Douyin)号的视频

作者 | loadchange

整理 | Xiaowen

原文 | 专知

链接:

https://github.com/LoadChange/amemv-crawler

这是一个Python的脚本,配置运行后可以下载指定抖音用户的全部视频(含收藏),也可以下载指定主题(挑战)或音乐下的全部视频。这个项目是一个练手项目,源码仅作为和大家一起学习Python使用,你可以免费: 拷贝、分发和派生当前源码。你不可以用于商业目的及其他恶意用途。

另外本项目要完成的功能是将视频成功下载,有一些朋友在 issue 中提出了一些超预期的需求,比如视频改名、下载图片、视频宽高、发布数据和播放点赞等等, 这些完善可能是对项目十分有利的,但是我没有时间去一一处理,所以对于这样的需求请不要在发issue上来了,可以直接提 Pull requests 上来。

还有一些是对 ascpmas 的探讨,对于这些也不在我们的项目范围内,最后是服务端对抓取的一些限制,如抓取频率、IP等等,如果你遇到了这样的问题, 可能你的下载量已经超出了学习目的,对此我也拒绝支持并表示非常抱歉。

对于上述所不支持的问题以外,欢迎大家多提issue,同时也仅支持在 issues 中反馈问题, 使用 email 和我联系的同学,以后我就不在回复啦,私人邮箱很少登录,回复也不及时,哈哈。? 最后希望和大家共同学习和进步。

环境安装

程序猿和程序媛见这里

配置好你的Python、node环境,然后pip install requests .

或者

$ git clone https://github.com/loadchange/amemv-crawler.git$ cd amemv-crawler$ pip install -r requirements.txt

大功告成,直接跳到下一节配置和运行.

配置和运行

有两种方式来指定你要下载的抖音号分享链接,一是编辑share-url.txt,二是指定命令行参数.

第一种方法:编辑share-url.txt文件

找到一个文字编辑器,然后打开文件share-url.txt,把你想要下载的抖音号分享链接编辑进去,以逗号/空格/tab/表格鍵/回车符分隔,可以多行.例如, 这个文件看起来是这样的:

https://www.douyin.com/share/user/85860189461?share_type=link&tt_from=weixin&utm_source=weixin&utm_medium=aweme_ios&utm_campaign=client_share&uid=97193379950&did=30337873848,https://www.iesdouyin.com/share/challenge/1593608573838339?utm_campaign=clien,https://www.iesdouyin.com/share/music/6536362398318922509?utm_campaign=client_share&app=aweme&utm_medium=ios&iid=30337873848&utm_source=copy

获取用户分享链接的方法(挑战、音乐 类似)

然后保存文件,双击运行amemv-video-ripper.py或者在终端(terminal)里面 运行python amemv-video-ripper.py

第二种方法:使用命令行参数(仅针对会使用操作系统终端的用户)

如果你对Windows或者Unix系统的命令行很熟悉,你可以通过指定运行时的命令行参数来指定要下载的站点:

某些平台下注意给URL增加引号

python amemv-video-ripper.py URL1,URL2

分享链接以逗号分隔,不要有空格.

视频的下载与保存

程序运行后,会默认在当前路径下面生成一个跟抖音ID名字相同的文件夹, 视频都会放在这个文件夹下面.

运行这个脚本,不会重复下载已经下载过的视频,所以不用担心重复下载的问题.同时,多次运行可以 帮你找回丢失的或者删除的视频.

然后重新运行下载命令.

高级应用

如果你想下载整个挑战主题,请在 share-url.txt 文件中添加 挑战的分享URL

如果你想下载按音乐去下载,请在 share-url.txt 文件中添加 音乐的分享URL

如下: 既为抖音号、挑战主题和音乐的三种爬虫方式,需要注意的是,爬虫只对搜索结果第一的结果进行下载,所以请尽量完整的写出你的 主题或音乐名称。

https://www.douyin.com/share/user/85860189461?share_type=link&tt_from=weixin&utm_source=weixin&utm_medium=aweme_ios&utm_campaign=client_share&uid=97193379950&did=30337873848,https://www.iesdouyin.com/share/challenge/1593608573838339?utm_campaign=clien,https://www.iesdouyin.com/share/music/6536362398318922509?utm_campaign=client_share&app=aweme&utm_medium=ios&iid=30337873848&utm_source=copy

短地址的情况

http://v.douyin.com/cDo2P/,http://v.douyin.com/cFuAN/,http://v.douyin.com/cMdjU/

处理意外

2018-04-14 用户列表接口新增字段_signature,该字段是由douyin_falcon:node_modules/byted-acrawler/dist/runtime 生成的,所以我们需要先fuck byted-acrawler一下,拿到signature,才能继续前行。请安装好python的环境之后 顺手安装node 以便顺利的fuck byted-acrawler

2018-06-22 分享出现短地址,解决办法:读取到 v.douyin.com 的任务时,尝试请求,在302的情况下取Response Headers中Location。

2018-07-02 更新了 douyin_falcon:node_modules/byted-acrawler/dist/runtime,我们保持同步更新 fuck-byted-acrawler.js !

2018-07-12 用户视频接口 https://www.douyin.com/aweme/v1/aweme/post/ 增加参数dytk, 这个参数在页面中直接取。

2018-09-03 修正用户视频列表接口域名 douyin.com to amemv.com

2018-09-25 抖音关闭原无水印720P下载地址,临时降级为有水印方案

2018-10-01 恢复无水印下载

2018-11-20 海外版 Tik Tok 切换无水印视频源

本文分享自微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 编程大神进阶之路:Python技巧小贴士

    整理用户输入的问题在编程过程中极为常见。通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作。但是如果问题很复杂,可...

    昱良
  • 干货 | 请收下这份机器学习清单

    机器学习的发展可以追溯到1959年,有着丰富的历史。这个领域也正在以前所未有的速度进化。在之前的一篇文章(https://unsupervisedmethods...

    昱良
  • 10月机器学习开源项目Top10

    过去一个月里,我们对近 250 个机器学习开源项目进行了排名,并挑选出热度前 10 的项目。这份清单的平均 github star 数量高达 1345,涵盖了包...

    昱良
  • 通过图灵测试!Google掌舵人说“打电话AI”是一次非凡突破

    今天凌晨,Google I/O 2018大会最后一日,前不久刚刚获得年度图灵奖的Alphabet新任董事长John Hennessy登上舞台。

    量子位
  • 读书单

    Java高级架构
  • [PHP] 邮件发送mail()函数失败问题 sendmail命令与postfix

    1. php的mail()函数是可以发送邮件的 , 但是一直就没有测试成功过 , 现在总结一下原因 :

    陶士涵
  • Dubbo服务提供者发布过程

    首先ServiceConfig类拿到对外提供服务的实际类ref(如:HelloServiceImpl),然后通过ProxyFactory类的getInvoker...

    搜云库技术团队
  • Java程序员高效学习的六个中肯建议

    知识改变命运,对于Java程序员来说,技术不断更新,只有及时充电,才能不被市场淘汰。今天为大家分享Java程序员学习的6个小技巧。

    慕容千语
  • shell 流程控制及函数

    不同于常见的 Java 以及 PHP 中的 if 条件语句,shell if 条件语句中不能包含空语句,也就是什么都不做的语句。

    happyJared
  • 引入秘密武器强化学习,发掘GAN在NLP领域的潜力(附公开课)

    大数据文摘

扫码关注云+社区

领取腾讯云代金券