[douyin_downloader] python 非同步抖音爬蟲
阿新 • • 發佈:2019-01-28
douyin_downloader
88 88 88 "" 88 ,adPPYb,88 ,adPPYba, 88 88 8b d8 88 8b,dPPYba, a8" `Y88 a8" "8a 88 88 `8b d8' 88 88P' `"8a 8b 88 8b d8 88 88 `8b d8' 88 88 88 "8a, ,d88 "8a, ,a8" "8a, ,a88 `8b,d8' 88 88 88 `"8bbdP"Y8 `"YbbdP"' `"YbbdP'Y8 Y88' 88 88 88 d8' d8' 88 88 88 88 88 88 88 88 88 ,adPPYb,88 ,adPPYba, 8b db d8 8b,dPPYba, 88 ,adPPYba, ,adPPYYba, ,adPPYb,88 ,adPPYba, 8b,dPPYba, a8" `Y88 a8" "8a `8b d88b d8' 88P' `"8a 88 a8" "8a "" `Y8 a8" `Y88 a8P_____88 88P' "Y8 8b 88 8b d8 `8b d8'`8b d8' 88 88 88 8b d8 ,adPPPPP88 8b 88 8PP""""""" 88 "8a, ,d88 "8a, ,a8" `8bd8' `8bd8' 88 88 88 "8a, ,a8" 88, ,88 "8a, ,d88 "8b, ,aa 88 `"8bbdP"Y8 `"YbbdP"' YP YP 88 88 88 `"YbbdP"' `"8bbdP"Y8 `"8bbdP"Y8 `"Ybbd8"' 88
如果你也是曾經沉迷過抖音,那我相信你的抖音裡面點讚的視訊數量一定不比我的少。但是最近我遇到了一個煩惱,很多以前點讚的視訊都被作者刪掉了,感覺很可惜…為了避免再發生這類事情,我決定先把已經喜歡的視訊下載下來!然而事情並沒有我想的那麼簡單,我發現在手機上下載簡直是龜速!WTF???
所以不得不充分發揮我的聰明才智–上網搜一下有沒有現成的抖音下載器!於是找到了 https://github.com/AppSign/douyin 和 https://github.com/hacksman/spider_world . 在我嘗試著用現有輪子來下載我的喜歡列表的過程中,我發現在我的渣渣網速下,等半天沒下載成功還丟擲了異常,然後重新下載…形成了一個死迴圈。鑑於大神們已經將最艱難的資料抓包分析給出了下載相關demo,所以我乾脆就自己寫一個更順手的爬蟲了,擼起袖子就搞出來了這個工具~至少在我的渣渣網速下,可以順利達成我的目標了。為了造福和我一樣的 douyiner ,稍加整理了一下程式碼,歡迎大家嘗試,如果使用過程中遇到了什麼不順手的,歡迎提出您寶貴的建議。
用法
安裝後使用:
- 安裝可選如下幾種方式:
- 原始碼安裝:
git clone https://github.com/HeLiangHIT/douyin_downloader.git && cd douyin_downloader && python setup.py install
- pip源安裝:
pip install douyin_downloader
- 使用: 在cmd下執行
douyin_downloader
命令,然後根據提示輸入使用者id/下載型別/是否下載關注使用者等引數。
Input user_id:123 Choose action[1.favorite, 2.post] *default 1: Do you want to follow user? [yes/no] *default no: Input video save dir *default /Users/heliang/Movies/douyin/: begin to download 123's favorite video to /Users/heliang/Movies/douyin/ ... ...
從原始碼執行:
檢視幫助: python douyin_downloader.py --help
抖音下載器: 非同步下載抖音視訊。 follow 引數用於指定是否是下載關注的使用者視訊。
Usage:
douyin_downloader.py [--dir=dir] [--concurrency=concurrency] [--follow=follow] <user> <action> follow
douyin_downloader.py [--dir=dir] [--concurrency=concurrency] [--follow=follow] <user> <action>
douyin_downloader.py --version
Options:
--dir=dir select file save dir. * default: '$HOME/Movies/douyin/'
--concurrency=concurrency select the concurrency number of downloader. [default: 20]
關於使用者 user_id 的獲取, 參考 https://github.com/hacksman/spider_world 的介紹。大致流程是 抖音>我>右上角…>分享個人主頁>以圖片形式分享到微信>微信掃碼獲取url地址>比如http…/user/84834596404最後的數字就是user_id值了。
舉例:
python douyin_downloader.py 84834596404 favorite
下載使用者 84834596404 喜歡過的視訊。python douyin_downloader.py --dir=. --concurrency=10 84834596404 post
下載使用者 84834596404 上傳的視訊。python douyin_downloader.py 84838778760 favorite follow
下載使用者 84838778760 關注的使用者喜歡過的視訊。python douyin_downloader.py 84838778760 post follow
下載使用者 84838778760 關注的使用者上傳的視訊。
下載過程和結果展示:
TODO
- 從首頁依次爬取抖音所有點選量超過1w的視訊下載…
- 順藤摸瓜,爬取自己關注的人->爬取他們關注的人…把整個抖音資料庫都扒下來了,看看有沒有用…
- 融入美女自動識別等功能(可以參考 Douyin-Bot )。
參考
歡迎掃碼關注作者,獲取更多資訊哦~另外如果本原始碼對你有所幫助,可以點贊以支援作者的持續更新。