一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python實(shí)現(xiàn)超簡(jiǎn)單【抖音】無(wú)水印視頻批量下載

 cn1188181 2020-05-29

導(dǎo)讀:本文介紹了如何使用簡(jiǎn)單的Python爬蟲爬取抖音上你喜歡的拍客的所有視頻(包含有水印和無(wú)水印兩種)。代碼已上傳至公眾號(hào)后臺(tái),回復(fù):抖音 即可獲得。


01 獲取你喜歡的拍客的視頻url

抖音用戶主頁(yè)的url,我將以羅永浩的主頁(yè)連接為例(本人第一次下載抖音就是沖著羅永浩去的,所以也只關(guān)注了他一個(gè)人)

1. 獲取主頁(yè)鏈接

打開抖音,點(diǎn)進(jìn)用戶的主頁(yè)面,點(diǎn)擊右上角的三個(gè)點(diǎn):

選擇分享:

再點(diǎn)擊復(fù)制鏈接即可,我們可以獲取如下url:

https://v.douyin.com/JJ8b6Hq/

2. 獲取重定向鏈接

我們只需要將上面這個(gè)鏈接粘貼到chrome瀏覽器,就可以獲取到重定向鏈接

重定向后的鏈接:

https://www.iesdouyin.com/share/user/4195355415549012?u_code=c23d6456gli&sec_uid=MS4wLjABAAAAlwXCzzm7SmBfdZAsqQ_wVVUbpTvUSX1WC_x8HAjMa3gLb88-MwKL7s4OqlYntX4r&timestamp=1590603009&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_app_name=douyin

現(xiàn)在我們需要記住url中/user后面的一串?dāng)?shù)字,也就是4195355415549012,這是我們的用戶id。以后只要有了這樣的用戶ID,直接替換進(jìn)url即可(時(shí)間戳也需要修改一下)

02 獲取用戶下面的所有的視頻id

我們剛剛獲取了視頻主頁(yè)的鏈接,現(xiàn)在我們要通過(guò)主頁(yè)鏈接來(lái)獲取當(dāng)前頁(yè)面下的所有視頻。為了方便我們觀看和調(diào)試,我們將Chrome開成iPhone模式。

1. 獲取請(qǐng)求鏈接

將Network設(shè)置成XHR,重新刷新一下頁(yè)面,獲取請(qǐng)求內(nèi)容:

我們可以看到上面選中的那個(gè)請(qǐng)求,返回的是一串json,我們將內(nèi)容復(fù)制下來(lái)看看,搜索返回的json中有關(guān)video的字段,通過(guò)下圖我們就可以看到video里面有個(gè)url_list,里面有兩個(gè)不同的url,這兩個(gè)url其實(shí)就是視頻相關(guān)的地址了,但是還有點(diǎn)問(wèn)題,這兩個(gè)url點(diǎn)進(jìn)去并不能直接看到視頻。

2. 獲取視頻鏈接

這里我們需要將url做一點(diǎn)點(diǎn)修改。我們將/play修改成/playmw就可以了,這個(gè)時(shí)候我們發(fā)現(xiàn),這兩個(gè)視頻地址被重定向成正常的視頻地址了。(下面來(lái)說(shuō)為什么要加mw,這個(gè)代表什么)

這樣我們就相當(dāng)于順利拿到視頻的地址了,我們可以去json中獲取所有的視頻url鏈接:

pattern = re.compile(''(https://aweme./aweme/v1/play/.*?)'')
result = pattern.findall(data)
result = [i.replace('/play/', '/playwm/') for i in result]
for i in result:
    print(i)

3. 水印問(wèn)題

關(guān)于水印問(wèn)題,看了簡(jiǎn)書上有篇文章有介紹,水印與無(wú)水印之間的區(qū)別,這邊我就不作詳細(xì)介紹了。其實(shí)我們一開始拿到的url就是無(wú)水印的,但是鏈接本身并沒重定向到無(wú)水印的視頻,加上wm之后,url會(huì)重定向到有水印的視頻。

簡(jiǎn)書參考鏈接

https://www.jianshu.com/p/af02f00729c5

水印鏈接:

https://aweme./aweme/v1/playwm/?video_id=v0200fc60000br74l173cp5c4comdoh0&line=0

無(wú)水印鏈接:

https://aweme./aweme/v1/play/?video_id=v0200fc60000br74l173cp5c4comdoh0&line=0

(多余的參數(shù)忽略,不管他)

03 下載視頻

有了視頻鏈接和獲取有無(wú)水印的方法之后,我們就可以直接下載視頻了。

import json
import re
import requests
import os
data = json.dumps(data)
pattern = re.compile(''(https://aweme./aweme/v1/play/.*?)'')
result = pattern.findall(data)
result = [i.split('&ratio')[0] for i in result]
result2 = [i.replace('/play/', '/playwm/') for i in result]

for i in result:
    print(i)
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
if not os.path.exists('無(wú)水印'):
    os.mkdir('無(wú)水印')
if not os.path.exists('水印'):
    os.mkdir('水印')

count = 0
for res1 in result:
    count += 1
    videoBin = requests.get(res1, timeout=5, headers=headers)
    with open(f'無(wú)水印/{count}.mp4', 'wb') as fb:
        fb.write(videoBin.content)
count = 0
for res2 in result2:
    count += 1
    videoBin = requests.get(res2, timeout=5, headers=headers)
    with open(f'水印/{count}.mp4', 'wb') as fb:
        fb.write(videoBin.content)

關(guān)于單個(gè)視頻下載,如果你想下載某單個(gè)無(wú)水印視頻,可以直接通過(guò)分享鏈接進(jìn)行下載:

url = 'https://v.douyin.com/JJ8kVTc/'  # 分享鏈接
session = requests.Session()
req = session.get(url, timeout=5, headers=HEADERS)
print(req.text)
video = re.findall(r'playAddr: '([\S]*?)'', req.text)[0]
vid = re.findall(r'vid=([\S]*?)&', video)[0]
addr = video.replace('/playwm/', '/play/')  # 去除水印
print(addr)
headers = {
    'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
videoBin = session.get(addr, timeout=5, headers=headers)
with open('test.mp4', 'wb') as fb:
    fb.write(videoBin.content)

04 結(jié)語(yǔ)

本文首先通過(guò)分享鏈接來(lái)獲取接口數(shù)據(jù),之后在接口數(shù)據(jù)中查找視頻數(shù)據(jù),找到視頻內(nèi)容之后再完成視頻下載。爬取過(guò)程非常的簡(jiǎn)單,主要就是查找ID會(huì)比較吃力。適合爬蟲的新手。

以上,便是今天的內(nèi)容,希望大家喜歡,歡迎轉(zhuǎn)發(fā)或者點(diǎn)擊在看支持,謝謝各位~



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产偷拍盗摄一区二区| 欧美激情一区=区三区| 99久久精品午夜一区二区| 老鸭窝精彩从这里蔓延| 国产福利在线播放麻豆| 黄色污污在线免费观看| 欧美欧美日韩综合一区| 欧美美女视频在线免费看| 欧美自拍偷自拍亚洲精品| 九九蜜桃视频香蕉视频| 国产精品福利精品福利| 免费人妻精品一区二区三区久久久| 日本黄色录像韩国黄色录像| 福利专区 久久精品午夜| 超碰在线免费公开中国黄片 | 国产精品成人又粗又长又爽| 亚洲欧美日韩国产成人| 欧美一区二区三区性视频| 国产精品制服丝袜美腿丝袜| 午夜福利视频日本一区| 欧美激情区一区二区三区| 91超频在线视频中文字幕| 搡老妇女老熟女一区二区| 国产精品日韩欧美第一页| 午夜国产精品国自产拍av| 国产欧美日韩在线精品一二区 | 亚洲国产欧美久久精品| 亚洲一区二区久久观看| 玩弄人妻少妇一区二区桃花| 日韩成人动画在线观看| 亚洲综合香蕉在线视频| 婷婷激情四射在线观看视频| 国产精品不卡高清在线观看| 久久99这里只精品热在线| 91天堂素人精品系列全集| 精品欧美日韩一区二区三区| 色婷婷国产精品视频一区二区保健 | 欧美日韩精品视频在线| 男女一进一出午夜视频| 好吊视频一区二区在线| 激情五月综五月综合网|