python爬蟲進階教程:抖音APP無水印視頻批量下載

1、前言

本文爲兩類人準備:技術控和工具控。html

  • 若是你是工具控,想簡單方便地下載無水印的視頻,那麼可使用第三方去水印平臺:、

抖音短視頻解析下載平臺python

  • 若是你是技術控,想要使用本身寫的代碼下載視頻,那麼可使用本文的方法,用python寫爬蟲下載視頻,最新開源項目:

Python3批量下載抖音無水印視頻android

本文的代碼已經不是最新的,可是抓取思路就是如此,能夠參考,代碼能夠直接運行使用,持續維護中git

更新日誌

  • 2018.5.23:github代碼已經修復沒法下載問題。
  • 2018.7.17:github代碼已經修復參數驗證問題。
  • 2018.11.07:api更新

2、實戰背景

抖音愈來愈火,感受它有毒,越刷越上癮,總感受下一個視頻必定會更精彩,根本停不下來。想將抖音裏喜歡的小哥哥/小姐姐的視頻所有存到電腦硬盤裏該如何操做?不想有抖音的視頻水印該如何處理?github

當初寫完代碼的截屏:web

爬蟲進階教程:抖音APP無水印視頻批量下載

3、實戰

首先,但願你已經具有手機APP抓包分析的能力,若是不會請去自行學習:點擊跳轉chrome

一、帶水印視頻下載

先說說帶水印的視頻如何抓去吧。在定好爬取目標的時候,咱們應該知道本身須要那些步驟完成這項任務。好比本文中提到的任務:抖音APP固定用戶的視頻批量下載json

思考過程:sublime-text

  • 想要批量下載視頻首先要得到這些視頻的連接;
  • 想要得到這些視頻連接能夠經過用戶的主頁進行查看,想進用戶主頁,我得知道用戶主頁連接;
  • 用戶主頁連接能夠經過抖音APP的搜索功能獲取,那麼搜索功能接口如何獲取?固然是抓包看看嘍!

瞧,這樣思考下來,問題是否是梳理的很清楚?api

搜索接口:

那麼接下來就是抓包分析了,抓包過程請自行嘗試。步驟是這樣的:

  • 配置好Fiddler,即肯定Fiddler能夠對手機APP進行抓包;
  • 在手機APP搜索框中輸入用戶信息,點擊搜索
  • 在Fiddler找到搜索接口;
  • 分析這個接口傳遞參數規則;
  • 寫代碼生成相應查詢接口。

經過分析你會發現,咱們經過搜索接口返回的JSON數據能夠找到用戶主頁信息,接下里用一樣的方法抓取主頁用戶信息再分析一波,這時候就遇到問題了,你會發現用戶主頁連接使用了as和cp參數進行了加密,這該如何是好?好比連接以下:

上述連接省略號部分是一些手機信息,這部分不是必須參數,能夠省略。user_id是用戶id能夠經過上個搜索接口獲取,count是用戶視頻數量,一樣能夠經過上個搜索接口獲取。那最後的as和cp參數怎麼辦?

我沒有逆向抖音APP,就是小小測試了一下,看看能不能繞過這個加密接口?抖音APP自帶視頻分享功能,分享連接格式以下:

中間參數都不重要,在此省略。www.douyin.com域名下存放的是分享的視頻,那麼這個用戶主頁信息是否能夠經過這個域名進行訪問呢?小小測試一下你會發現,徹底沒有問題!

這就是沒有加密的接口,驚不驚喜,意不意外?根據這個用戶主頁接口,咱們就能夠輕鬆獲取用戶主頁全部的視頻連接了。

二、無水印視頻下載

方法一:

無水印視頻下載很簡單,有一個通用的方法,就是使用去水印平臺便可。

我使用的去水印平臺是:http://douyin.iiilab.com/

在輸入框中輸入視頻連接點擊視頻解析,就能夠得到無水印視頻連接。

這個網站當初我寫代碼的時候是好使的,當初用這個網站下了一些無水印視頻,不過寫這篇文章的時候發現這個取水印平臺沒法正常解析了,等它修復好了再用這個功能吧。

這個平臺不只包括抖音視頻去水印,還支持火山、快手、陌陌、美拍等無水印視頻。因此作一個這個網站的接口仍是很合適的。

簡單測試了一下,這個網站的API是須要付費解析的,若是經過模擬請求的方式有些困難,所以決定上瀏覽器模擬器Splinter。

Splinter是個好東西,跟Selenium使用相似,它的配置能夠參考個人早期Selenium文章:http://blog.csdn.net/c406495762/article/details/72331737

Splinter有個很詳細的英文文檔:http://splinter.readthedocs.io/en/latest/

這裏使用方法就不累述,不過有一點能夠說的是,咱們能夠配置headless參數,來將Splinter配置爲無頭瀏覽器,啥事無頭瀏覽器呢?就是運行Splinter不調出瀏覽器界面,直接在後臺模擬各類請求,非常方便。

這部分的代碼很簡單,無非就是填充元素,肯定解析按鈕位置,點擊按鈕,獲取視頻下載連接便可。這點小問題,就自行分析吧。

總體代碼:

方法二:

這個方法是經過網友@羽葵的反饋得知的,對下載連接直接修改便可獲得無水印下載連接。

方法簡單粗暴,很好用。好處就是處理速度飛快,缺點是這種方法通用性不強,不一樣視頻發佈平臺的打碼方法可能有不一樣,須要自行分析。

4、總結

玩爬蟲的日子仍是頗有意思的,很久沒有那種舒爽感了。還有,找工做也是蠻心累的事。

相關文章
相關標籤/搜索