<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python爬取抖音短視頻(無水印版)

          共 2466字,需瀏覽 5分鐘

           ·

          2021-11-27 21:32


          1. 使用更簡單的方法


          在我之前的一篇博客中,我用了構(gòu)造網(wǎng)址的方法來獲取抖音短視頻,但是在今天我又一次的研究抖音短視頻的時(shí)候發(fā)現(xiàn)了一個(gè)更加簡單的方法,發(fā)現(xiàn)我之前的分析實(shí)在是太過繁瑣了,所以有寫了一篇博客來記錄下這個(gè)方法。


          與上一篇博客不同的是,這個(gè)方法可以省略掉大量的分析步驟


          隨便打開一個(gè)抖音個(gè)人主頁,我選擇的是愛奇藝體育,接著右鍵檢查網(wǎng)頁元素,點(diǎn)擊network選項(xiàng)卡下的xhr選項(xiàng),分析抓到的包



          點(diǎn)到preview選項(xiàng)卡,點(diǎn)擊video->download_addr->url_list



          發(fā)現(xiàn)這下面跟著的兩個(gè)網(wǎng)址正好是視頻的網(wǎng)址(根本不需要構(gòu)造,只是這個(gè)網(wǎng)址藏的有點(diǎn)深,需要非常耐心的尋找),打開網(wǎng)址查看:



          提取到這個(gè)網(wǎng)址的時(shí)候我以為已經(jīng)結(jié)束了,但是一個(gè)大佬@金亭玉立給我發(fā)來了一篇文章提醒了我一些沒有想到的東西,在此表示感謝!


          我們接著往下看,在下面的play_addr下面也有一個(gè)鏈接,這個(gè)鏈接下面的視頻就是無水印版本的視頻



          ok,現(xiàn)在我們只要想辦法提取到它就大功告成了


          我這次使用的方法中用到了jsonpath模塊,直接pip下載就可以了:

          pip?install?jsonpath



          2. 代碼


          import requestsimport jsonimport jsonpath
          class Douyin: def page_num(self,max_cursor): #隨機(jī)碼 random_field = '00nvcRAUjgJQBMjqpgesfdNJ72&dytk=4a01c95562f1f10264fb14086512f919' #網(wǎng)址的主體 url = 'https://www.iesdouyin.com/web/api/v2/aweme/post/?sec_uid=MS4wLjABAAAAU7Bwg8WznVaafqWLyLUwcVUf9LgrKGYmctJ3n5SwlOA&count=21&max_cursor=' + str(max_cursor) + '&aid=1128&_signature=' + random_field #請求頭 headers = { 'user-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36', } response = requests.get(url,headers=headers).text #轉(zhuǎn)換成json數(shù)據(jù) resp = json.loads(response) #提取到max_cursor max_cursor = resp['max_cursor'] #遍歷 for data in resp['aweme_list']: # 視頻簡介 video_title = data['desc'] #使用jsonpath語法提取paly_addr video_url = jsonpath.jsonpath(data,'$..paly_addr') for a in video_url: #提取出來第一個(gè)鏈接地址 video_realurl = a['url_list'][1] # 請求視頻 video = requests.get(video_realurl, headers=headers).content with open('t/' + video_title, 'wb') as f: print('正在下載:', video_title) f.write(video)
          #判斷停止構(gòu)造網(wǎng)址的條件 if max_cursor==0: return 1 else: douyin.page_num(max_cursor)
          if __name__ == '__main__': douyin = Douyin()?????douyin.page_num(max_cursor=0)


          3. 優(yōu)點(diǎn)


          這個(gè)方法的優(yōu)點(diǎn)是可以省去很大一部分的分析網(wǎng)址的步驟,而且沒有調(diào)用到webdriver(可以不限制瀏覽器),速度也會(huì)有顯著提升,得到的視頻也是無水印的


          4. 不足


          還是沒有解決隨機(jī)生成字符串的問題,操作比較麻煩


          5. 使用方法

          https://github.com/jjjjmhao/Sprider/blob/master/simplescreenrecorder-2020-05-04_23.54.22.mkv


          最后還是希望大家能給我點(diǎn)一波小小的贊或者在看~

          - EOF -


          回復(fù)關(guān)鍵字“簡明python ”,立即獲取入門必備書籍簡明python教程》電子版

          回復(fù)關(guān)鍵字爬蟲”,立即獲取爬蟲學(xué)習(xí)資料

          點(diǎn)擊關(guān)注【python入門與進(jìn)階】,閱讀更多精彩內(nèi)容
          ??????

          推薦

          瀏覽 54
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级a人与一级A片 | 日韩精品一区二区三区四虎影视 | 超碰成人福利在线 | av亚洲国产电影在线观看 | 一区二区三区无码翻白眼 |