婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > 使用Python下載抖音各大V視頻的思路詳解

使用Python下載抖音各大V視頻的思路詳解

熱門標(biāo)簽:杭州房產(chǎn)地圖標(biāo)注 地圖標(biāo)注可以遠(yuǎn)程操作嗎 甘肅高頻外呼系統(tǒng) 如何申請(qǐng)400電話代理 江門智能電話機(jī)器人 滴滴地圖標(biāo)注公司 天津塘沽區(qū)地圖標(biāo)注 智能電話機(jī)器人調(diào)研 400電話在線如何申請(qǐng)

前言

本文的文字及圖片來源于網(wǎng)絡(luò),僅供學(xué)習(xí)、交流使用,不具有任何商業(yè)用途,如有問題請(qǐng)及時(shí)聯(lián)系我們以作處理。

以下文章來源于Python七號(hào) ,作者 somenzz

Python爬蟲、數(shù)據(jù)分析、網(wǎng)站開發(fā)等案例教程視頻免費(fèi)在線觀看

https://space.bilibili.com/523606542

上次寫了用 Python 批量下載知乎視頻的方式,這次分享用 Python 批量下載抖音個(gè)人主頁的全部無水印視頻,本文重點(diǎn)不是提供一個(gè)好用的腳本,而是講述如何寫出這樣的腳本,正所謂授人以魚,不如授人以漁,所謂的爬蟲,基本都是這個(gè)套路。

思路

先說下思路,要批量下載視頻,可以先嘗試成功下載一個(gè),確定沒有水印,然后在寫一個(gè)循環(huán)進(jìn)行批量下載。

難點(diǎn):下載一個(gè)視頻可能很簡(jiǎn)單,但下載多個(gè)就稍微有點(diǎn)復(fù)雜,需要抓取多個(gè)視頻對(duì)應(yīng)的 url,抖音這塊做了防爬措施,只允許手機(jī)上看到個(gè)人主頁的視頻列表,電腦端的網(wǎng)頁卻看不到,這就需要抓取手機(jī)的 https 包,這里借助 Burpsuite 進(jìn)行抓包。

這里用到了 Burpsuite ,因此我把自己常用的 Burpsuite 2.1.06 專業(yè)版放在了網(wǎng)盤里面,公眾號(hào)「Python七號(hào)」回復(fù)「burp」獲取,下載后運(yùn)行start_burp.bat或sh start_burp.sh即可一鍵啟動(dòng),無需購買許可,非常方便。

爬取單個(gè)視頻

  • 找一個(gè)抖音視頻鏈接,點(diǎn)擊分享,復(fù)制鏈接,在電腦上用打開,然后打開開發(fā)者工具,點(diǎn)擊 network 選項(xiàng)。
  • 刷新,看接口,找到返回值里有播放地址的接口:

這里面有個(gè) play_addr,內(nèi)部有個(gè) urllist,我們復(fù)制這個(gè) urllist[0] 在瀏覽器打開,網(wǎng)站跳轉(zhuǎn)到了真正的播放地址,同時(shí)可以看到下載的按鈕:

下載這個(gè)視頻,發(fā)現(xiàn)是帶水印的,如何下載到不帶水印的視頻呢?網(wǎng)上搜索了下,方法就是將上述 urllist[0] 中的 playwm 改成 play 就可以了。

然后開始寫代碼,獲取這個(gè) urllist[0],并下載

def get(share_url) -> dict:
  """
  share_url -> 抖音視頻分享url
  返回格式 [{'url':'', 'title','format':'',},{}]
  """
  data = []
  headers = {
    'accept': 'application/json',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  }
  api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_id}"

  rep = requests.get(share_url, headers=headers, timeout=10)
  if rep.ok:
    # item_id
    item_id = re.findall(r'video/(\d+)', rep.url)
    if item_id:
      item_id = item_id[0]
      # video info
      rep = requests.get(api.format(item_id=item_id), headers=headers, timeout=10)
      if rep.ok and rep.json()["status_code"] == 0:
        info = rep.json()["item_list"][0]
        tmp = {}
        tmp["title"] = info["desc"]

        #去水印的視頻鏈接
        play_url = info["video"]["play_addr"]["url_list"][0].replace('playwm', 'play')
        tmp["url"] = play_url
        tmp["format"] = 'mp4'
       def get(share_url) -> dict:
  """
  share_url -> 抖音視頻分享url
  返回格式 [{'url':'', 'title','format':'',},{}]
  """
  data = []
  headers = {
    'accept': 'application/json',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  }
  api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_id}"

  rep = requests.get(share_url, headers=headers, timeout=10)
  if rep.ok:
    # item_id
    item_id = re.findall(r'video/(\d+)', rep.url)
    if item_id:
      item_id = item_id[0]
      # video info
      rep = requests.get(api.format(item_id=item_id), headers=headers, timeout=10)
      if rep.ok and rep.json()["status_code"] == 0:
        info = rep.json()["item_list"][0]
        tmp = {}
        tmp["title"] = info["desc"]

        #去水印的視頻鏈接
        play_url = info["video"]["play_addr"]["url_list"][0].replace('playwm', 'play')
        tmp["url"] = play_url
        tmp["format"] = 'mp4'
        data.append(tmp)

  return data

if __name__ =='__main__':
  videos = get('https://www.iesdouyin.com/share/video/6920538027345415431/?region=mid=6920538030852885262u_code=48titleType=titledid=0iid=0')
  for video in videos:
    downloader.download(video['url'],video['title'],video['format'],'./download') data.append(tmp)

  return data

if __name__ =='__main__':
  videos = get('https://www.iesdouyin.com/share/video/6920538027345415431/?region=mid=6920538030852885262u_code=48titleType=titledid=0iid=0')
  for video in videos:
    downloader.download(video['url'],video['title'],video['format'],'./download')

這里 downloader.download 函數(shù),與前文知乎視頻下載 里的函數(shù)一樣,這里就不貼代碼了。

獲取個(gè)人主頁視頻鏈接

前兩步已經(jīng)實(shí)現(xiàn)了單個(gè)抖音視頻的無水印下載,現(xiàn)在我們要做的就是找到大量的這種鏈接,直接循環(huán)就可以了。

任意打開一個(gè)大 V 的個(gè)人主頁,分享,復(fù)制鏈接,使用瀏覽器打開,一個(gè)視頻也看不到,而使用抖音 App 就可以看到:

瀏覽器

抖音APP

說明抖音做了一定的限制,防止從瀏覽器看到多個(gè)視頻的信息。這時(shí)就需要學(xué)會(huì)從手機(jī) APP 來抓包,看看手機(jī)上的 http 請(qǐng)求是怎么發(fā)起的,然后使用程序來模擬。

我一直在用的 BurpSuite(下面簡(jiǎn)稱 Burp) 非常好用,這里順便分享下如何使用:

1、運(yùn)行 Burp

下載后運(yùn)行start_burp.bat或sh start_burp.sh來啟動(dòng) Burp,然后打開代理設(shè)置,綁定到運(yùn)行 Burp 的機(jī)器 IP,如下圖所示:

注意不要設(shè)置 ip 為 127.0.0.1,這樣設(shè)置的話,只有本地請(qǐng)求可以使用代理,手機(jī)無法連接此代理。

2、手機(jī)設(shè)置代理

手機(jī)與電腦連接同一 wifi,IPhone 的操作如下:然后進(jìn)入設(shè)置-> 無線局域網(wǎng) -> 點(diǎn)擊同一 wifi 右邊的 information 符號(hào),然后下拉,點(diǎn)擊配置代理,配置和 BurpSuite 一樣的 ip 和端口。Android 的手機(jī)的設(shè)置也差不多。至此可以在 BurpSuite 上抓取手機(jī)的 http 流量。

3、手機(jī)下載 Burp 的證書,并設(shè)置信任

手機(jī)瀏覽器 進(jìn)入 http://burp。點(diǎn)擊 CA 下載證書。設(shè)置->通用->描述文件->點(diǎn)擊 PortSwigger CA->安裝設(shè)置->通用->關(guān)于本機(jī)->證書信任設(shè)置,將 BurpSuite 的證書開啟

這樣就可以抓取手機(jī)上發(fā)起的 https 包了。

4、設(shè)置 BurpSuite 中斷

這一步驟設(shè)置之后,手機(jī)上的請(qǐng)求會(huì)在這里阻塞,你可以放行選擇放行,或修改數(shù)據(jù)包后放行,也可以發(fā)往 repeater,以便后續(xù)重放請(qǐng)求,因此來自前端的請(qǐng)求是不可信的。

現(xiàn)在打開手機(jī)上的抖音 App,這里便會(huì)出現(xiàn)大量的請(qǐng)求阻塞在這里,我們選擇放行,會(huì)發(fā)現(xiàn)抖音 App 里的數(shù)據(jù)一步一步的出現(xiàn)。快刷到個(gè)人主頁的視頻之前,將請(qǐng)求發(fā)到 Repeater,如下圖所示:

然后打開 BurpSuite 的 Repeater 選項(xiàng)卡,就可以看到剛才發(fā)過來的請(qǐng)求,這時(shí)我們選擇重放,看數(shù)據(jù),決定我們需要使用的接口,如下圖所示:

發(fā)現(xiàn)這個(gè)接口滿足請(qǐng)求,這里可以看到接口的 url,headers 的各種參數(shù),headers 中的 User-Agent 參數(shù),是區(qū)分客戶端是瀏覽器還是 App 的重要標(biāo)識(shí),因此就可以寫代碼來模擬請(qǐng)求,進(jìn)而獲取需要的批量下載鏈接。

由于 url 中的參數(shù)非常多,有些是固定不變的,有些隨著不同人的主頁參數(shù)會(huì)發(fā)生變化,如果僅僅是自己使用,可以簡(jiǎn)單的通過正則表達(dá)式來提取這些 url 鏈接,然后進(jìn)行批量下載就可以了。

如果是想寫好一個(gè)腳本供別人使用,那么就需要做更多的工作,比如說,需要查看更多的 api,以便確定 url 及 headers 中的參數(shù)是如何獲取或生成的,然后寫腳本自動(dòng)化這一過程,有些情況下,還涉及到加密混淆等反爬措施,這里就不再展開了,請(qǐng)感興趣的讀者自行探索。

最后的話

爬取視頻的關(guān)鍵在于找到視頻的播放地址,有了播放地址,即使不寫代碼,也可以使用瀏覽器下載,尋找播放地址還不夠,要考慮是否能去水印,如果要批量下載,那就要知道如何獲取更多的視頻鏈接,在瀏覽器抓取不到的時(shí)候,考慮使用 BurpSuite 抓取手機(jī)的流量包,進(jìn)一步提取接口的數(shù)據(jù),或模擬手機(jī)請(qǐng)求,對(duì)搞爬蟲的同學(xué),BurpSuite 是一個(gè)瑞士軍刀,非常實(shí)用。

如果本文對(duì)你有所幫助,請(qǐng)點(diǎn)個(gè)贊或再看吧,謝謝支持。

到此這篇關(guān)于使用Python下載抖音各大V視頻的思路詳解的文章就介紹到這了,更多相關(guān)Python下載抖音視頻內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python tkinter實(shí)現(xiàn)下載進(jìn)度條及抖音視頻去水印原理
  • python gui開發(fā)——制作抖音無水印視頻下載工具(附源碼)
  • 基于Python實(shí)現(xiàn)全自動(dòng)下載抖音視頻
  • Python爬蟲 批量爬取下載抖音視頻代碼實(shí)例
  • python批量爬取下載抖音視頻
  • python批量下載抖音視頻
  • python3下載抖音視頻的完整代碼
  • python實(shí)現(xiàn)抖音視頻批量下載
  • 教你用Python下載抖音無水印視頻

標(biāo)簽:廊坊 東莞 臨汾 重慶 河池 長(zhǎng)春 漢中 德宏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用Python下載抖音各大V視頻的思路詳解》,本文關(guān)鍵詞  使用,Python,下載,抖音,各大,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用Python下載抖音各大V視頻的思路詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于使用Python下載抖音各大V視頻的思路詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美怡红院视频| 亚洲欧洲国产专区| 国产精品久久毛片| 美女脱光内衣内裤视频久久网站 | 欧美男生操女生| 亚洲欧美色综合| 91精品1区2区| 亚洲a一区二区| 日韩一卡二卡三卡四卡| 久久精品久久精品| 久久久www免费人成精品| 久久99精品国产麻豆婷婷洗澡| 午夜影院久久久| 在线看不卡av| 蜜臀精品一区二区三区在线观看| 男男gaygay亚洲| 欧美欧美欧美欧美首页| 久久99精品一区二区三区三区| 国产一区久久久| 日韩一区二区三区视频在线观看| 久久久激情视频| www.av亚洲| 婷婷久久综合九色综合伊人色| 日本一不卡视频| 亚洲精品一区二区三区99| 成人国产免费视频| 亚洲成人免费看| 国产人成亚洲第一网站在线播放| 成人欧美一区二区三区1314| 成人三级伦理片| 婷婷亚洲久悠悠色悠在线播放| 成人精品视频一区| 亚洲一卡二卡三卡四卡无卡久久 | 亚洲精品乱码久久久久久久久| 一区二区三区色| 日韩欧美第一区| 色呦呦日韩精品| 国产裸体歌舞团一区二区| 亚洲一区二区三区四区的| 国产亚洲一区二区在线观看| 制服视频三区第一页精品| 国产91精品露脸国语对白| 奇米色一区二区| 亚洲曰韩产成在线| 中文字幕中文字幕一区| 欧美美女视频在线观看| 91小视频免费看| 国产精品66部| 亚洲美腿欧美偷拍| 中文字幕欧美区| 精品乱人伦小说| 日韩一区二区三区视频在线| 色香蕉久久蜜桃| 91在线porny国产在线看| 国产乱妇无码大片在线观看| 美日韩一区二区| 天天色天天爱天天射综合| 亚洲精品欧美综合四区| 亚洲欧洲色图综合| 国产精品国产三级国产aⅴ原创| 国产在线视频一区二区三区| 午夜视频一区在线观看| 亚洲视频狠狠干| 亚洲欧美色图小说| 亚洲精品老司机| 亚洲无人区一区| 亚洲大片精品永久免费| 无码av免费一区二区三区试看| 精品国产一区二区精华| 欧美日韩国产小视频在线观看| 亚洲精品美国一| 综合色中文字幕| 亚洲精选视频免费看| 亚洲影院免费观看| 日本va欧美va瓶| 日韩不卡一二三区| 六月丁香婷婷久久| 国内久久精品视频| 国产69精品久久久久毛片| 国内精品自线一区二区三区视频| 久久精品视频在线看| 欧美成人综合网站| 日韩亚洲国产中文字幕欧美| 2023国产精品| 1024亚洲合集| 日日夜夜精品视频免费| 国产毛片精品一区| 色综合中文字幕国产| 在线播放亚洲一区| 国产视频一区在线播放| 亚洲午夜免费视频| 国产激情精品久久久第一区二区| 亚洲乱码国产乱码精品精小说| 欧美三级三级三级爽爽爽| 欧美色区777第一页| 久久综合视频网| ...av二区三区久久精品| 午夜精品久久久久久久99樱桃| 日韩欧美亚洲一区二区| 国产亚洲综合性久久久影院| 日本一区二区动态图| 宅男噜噜噜66一区二区66| 91在线播放网址| 在线观看区一区二| 精品国产网站在线观看| 亚洲国产精品久久艾草纯爱| 偷窥国产亚洲免费视频| 99在线精品一区二区三区| 精品国产91亚洲一区二区三区婷婷| 韩国v欧美v亚洲v日本v| 国产精品一区一区| 亚洲欧美电影院| 亚洲成人动漫av| 成人亚洲一区二区一| 在线不卡的av| 国产精品毛片无遮挡高清| 免费观看在线色综合| 在线免费观看日本一区| 国产精品女人毛片| 国产黄人亚洲片| 日韩欧美一级片| 日韩综合小视频| 欧美日韩一区二区三区在线| 又紧又大又爽精品一区二区| 国产成人av电影在线观看| 欧美日韩性生活| 一区二区在线观看免费视频播放| 国产精品女上位| 精品一区二区三区免费毛片爱 | 成人av电影免费观看| 欧美精品日韩精品| 亚洲色图视频免费播放| 成人综合在线视频| 久久精品一区二区三区不卡| 久久精品国产亚洲aⅴ| 国产欧美日韩精品在线| 日本高清不卡视频| 国产精品二三区| 成人av片在线观看| 中文字幕精品一区二区精品绿巨人 | 亚洲嫩草精品久久| 国产露脸91国语对白| 欧美va亚洲va| 国产中文一区二区三区| 国产午夜精品福利| 国产精品66部| 中文子幕无线码一区tr| 成人精品视频一区二区三区| 国产精品美女久久久久久久久久久 | 亚洲精品国产无天堂网2021| 国产suv一区二区三区88区| 国产性做久久久久久| 成人性生交大片| 亚洲最大色网站| 欧美一区二区在线视频| 精油按摩中文字幕久久| 国产精品污污网站在线观看| 91网站黄www| 一区二区三区四区不卡在线| 在线视频你懂得一区| 三级欧美在线一区| 精品国产髙清在线看国产毛片| 久久免费午夜影院| 成人激情文学综合网| 一区二区三区四区激情| 日韩免费高清电影| 成人免费视频播放| 丝袜美腿亚洲一区二区图片| 国产午夜精品一区二区三区四区| 中文字幕va一区二区三区| 风间由美一区二区av101 | 激情伊人五月天久久综合| 欧美va亚洲va香蕉在线| 波多野结衣欧美| 美腿丝袜在线亚洲一区| 亚洲四区在线观看| 日韩视频免费直播| 91免费小视频| 精品一区二区三区欧美| 亚洲美女屁股眼交| 国产午夜亚洲精品羞羞网站| 欧美日韩国产在线播放网站| 国产成a人无v码亚洲福利| 日韩激情一区二区| 亚洲美女在线一区| 日本一区二区三区四区在线视频| 九九久久精品视频| 亚洲免费视频成人| 欧美成人精品二区三区99精品| 欧美韩日一区二区三区四区| 99久久99久久综合| 国产精品一区二区久激情瑜伽| 91精品国产aⅴ一区二区| 国产.欧美.日韩| 乱一区二区av| 秋霞av亚洲一区二区三| 亚洲成人777| 亚洲一区二区在线免费观看视频| 99久久99久久精品免费观看| 日韩精品91亚洲二区在线观看|