HI 您好,歡迎來(lái)到巨人電商全國(guó)服務(wù)總部!
關(guān)注巨人電商微信客服
一鍵登錄我的賬戶,隨時(shí)查看您當(dāng)前位置 : 首頁(yè) 電商百科 python爬蟲教程:抖音無(wú)水印視頻批量下載
向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)
大數(shù)據(jù)挖掘DT機(jī)器學(xué)習(xí)? 公眾號(hào):?datayx
抖音越來(lái)越火,感覺它有毒,越刷越上癮,總感覺下一個(gè)視頻一定會(huì)更精彩,根本停不下來(lái)。想將抖音里喜歡的小哥哥/小姐姐的視頻全部存到電腦硬盤里該如何操作?不想有抖音的視頻水印該如何處理?
首先,希望你已經(jīng)具備手機(jī)APP抓包分析的能力,如果不會(huì)請(qǐng)去自行學(xué)習(xí):
https://blog.csdn.net/c406495762/article/details/76850843
先說(shuō)說(shuō)帶水印的視頻如何抓去吧。在定好爬取目標(biāo)的時(shí)候,我們應(yīng)該知道自己需要那些步驟完成這項(xiàng)任務(wù)。比如本文中提到的任務(wù):抖音app固定用戶的視頻批量下載。
思考過(guò)程:
想要批量下載視頻首先要獲得這些視頻的鏈接;
想要獲得這些視頻鏈接可以通過(guò)用戶的主頁(yè)進(jìn)行查看,想進(jìn)用戶主頁(yè),我得知道用戶主頁(yè)鏈接;
用戶主頁(yè)鏈接可以通過(guò)抖音APP的搜索功能獲取,那么搜索功能接口如何獲取?當(dāng)然是抓包看看嘍!
瞧,這樣思考下來(lái),問(wèn)題是不是梳理的很清楚?
搜索接口:
那么接下來(lái)就是抓包分析了,抓包過(guò)程請(qǐng)自行嘗試。步驟是這樣的:
配置好FIDdler,即確定Fiddler可以對(duì)手機(jī)APP進(jìn)行抓包;
在手機(jī)APP搜索框中輸入用戶信息,點(diǎn)擊搜索;
在Fiddler找到搜索接口;
分析這個(gè)接口傳遞參數(shù)規(guī)則;
寫代碼生成相應(yīng)查詢接口。
通過(guò)分析你會(huì)發(fā)現(xiàn),我們通過(guò)搜索接口返回的JSON數(shù)據(jù)可以找到用戶主頁(yè)信息,接下里用同樣的方法抓取主頁(yè)用戶信息再分析一波,這時(shí)候就遇到問(wèn)題了,你會(huì)發(fā)現(xiàn)用戶主頁(yè)鏈接使用了as和cp參數(shù)進(jìn)行了加密,這該如何是好?比如鏈接如下:
1
https://aweme.snssdk.com/aweme/v1/aweme/post/?user_id=63386731255&max_cursor=0&count=20...&as=a18575a0311bfa0c2d&cp=55bba65311d10ccde1
上述鏈接省略號(hào)部分是一些手機(jī)信息,這部分不是必須參數(shù),可以省略。user_id是用戶id可以通過(guò)上個(gè)搜索接口獲取,count是用戶視頻數(shù)量,同樣可以通過(guò)上個(gè)搜索接口獲取。那最后的as和cp參數(shù)怎么辦?
我沒有逆向抖音APP,就是小小測(cè)試了一下,看看能不能繞過(guò)這個(gè)加密接口?抖音APP自帶視頻分享功能,分享鏈接格式如下:
1
https://www.douyin.com/share/video/6511132370416962829/?region=cn...share_iid=28037626243
中間參數(shù)都不重要,在此省略。www.DOU+yin.com域名下存放的是分享的視頻,那么這個(gè)用戶主頁(yè)信息是否可以通過(guò)這個(gè)域名進(jìn)行訪問(wèn)呢?小小測(cè)試一下你會(huì)發(fā)現(xiàn),完全沒有問(wèn)題!
1
https://www.douyin.com/aweme/v1/aweme/post/?user_id=63386731255&max_cursor=0&count=20
這就是沒有加密的接口,驚不驚喜,意不意外?根據(jù)這個(gè)用戶主頁(yè)接口,我們就可以輕松獲取用戶主頁(yè)所有的視頻鏈接了。
方法一:
無(wú)水印視頻下載很簡(jiǎn)單,有一個(gè)通用的方法,就是使用去水印平臺(tái)即可。
我使用的去水印平臺(tái)是:http://douyin.iiilab.com/
在輸入框中輸入視頻鏈接點(diǎn)擊視頻解析,就可以獲得無(wú)水印視頻鏈接。
這個(gè)網(wǎng)站當(dāng)初我寫代碼的時(shí)候是好使的,當(dāng)初用這個(gè)網(wǎng)站下了一些無(wú)水印視頻,不過(guò)寫這篇文章的時(shí)候發(fā)現(xiàn)這個(gè)取水印平臺(tái)無(wú)法正常解析了,等它修復(fù)好了再用這個(gè)功能吧。
這個(gè)平臺(tái)不僅包括抖音視頻去水印,還支持火山、快手、陌陌、美拍等無(wú)水印視頻。所以做一個(gè)這個(gè)網(wǎng)站的接口還是很合適的。
簡(jiǎn)單測(cè)試了一下,這個(gè)網(wǎng)站的API是需要付費(fèi)解析的,如果通過(guò)模擬請(qǐng)求的方式有些困難,因此決定上瀏覽器模擬器Splinter。
Splinter是個(gè)好東西,跟Selenium使用類似,它的配置可以參考我的早期Selenium文章:http://blog.csdn.net/c406495762/article/details/72331737
Splinter有個(gè)很詳細(xì)的英文文檔:http://splinter.readthedocs.io/en/latest/
這里使用方法就不累述,不過(guò)有一點(diǎn)可以說(shuō)的是,我們可以配置headless參數(shù),來(lái)將Splinter配置為無(wú)頭瀏覽器,啥事無(wú)頭瀏覽器呢?就是運(yùn)行Splinter不調(diào)出瀏覽器界面,直接在后臺(tái)模擬各種請(qǐng)求,很是方便。
這部分的代碼很簡(jiǎn)單,無(wú)非就是填充元素,確定解析按鈕位置,點(diǎn)擊按鈕,獲取視頻下載鏈接即可。
本文源碼地址:
關(guān)注微信公眾號(hào)datayx 然后回復(fù)“抖音”即可獲取。
整體代碼:
方法二:
對(duì)下載鏈接直接修改即可得到無(wú)水印下載鏈接。
1
download_url = video_html['video']['play_addr']['url_list'][0].replace('playwm','play')
方法簡(jiǎn)單粗暴,很好用。好處就是處理速度飛快,缺點(diǎn)是這種方法通用性不強(qiáng),不同視頻發(fā)布平臺(tái)的打碼方法可能有不同,需要自行分析。
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
?搜索公眾號(hào)添加:?datayx
長(zhǎng)按圖片,識(shí)別二維碼,點(diǎn)關(guān)注
上一篇: 上一篇:抖音新手教程:分析為什么這么多人玩抖音?