亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

    <nobr id="5kjuw"><tr id="5kjuw"></tr></nobr>

      python爬取抖音視頻的實例分析

       更新時間:2021年01月19日 11:40:00   作者:十一  
      在本篇內容里小編給大家整理一篇關于python爬取抖音視頻的實例分析的相關內容,有興趣的朋友可以測試下實例內容。

      現在抖音的火爆程度,大家都是有目共睹的吧,之前小編在網絡上發(fā)現好玩的事情,就是去爬取一些網站,因此,也考慮能否進行抖音上的破案去,在實際操作以后,真的實現出來了,利用自動化工具,就可以輕松實現了,后有小伙伴提出把appium去掉瘦身之后也是可以實現的,那么看下詳細操作內容吧。

      1、mitmproxy/mitmdump抓包

      import requests
      path = 'D:/video/'
      num = 1788
      def response(flow):
       global num
       target_urls = ['url']
       for url in target_urls:
         if flow.request.url.startswith(url):
            filename = path + str(num) + '.mp4
         res = requests.get(flow.request.url, stream=True)
          with open(filename, 'ab') as f:
          f.write(res.content)
          f.flush()
          print(filename + '下載完成')
         num += 1

      2、Appium對手機進行模擬操作

      利用Start Server按鈕即可啟動appium服務

      再點擊Start Session即可啟動Android手機上的抖音app并進入到啟動頁面

      3、python腳本來驅動app,直接在pycharm運行即可

      實例擴展:

      import requests
      import json
      import re
      import os
      from pprint import pprint as pp
      import queue
      
      
      class DouYin:
       header = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9',
        'cache-control': 'max-age=0',
        'upgrade-insecure-requests': '1',
        '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',
       }
      
       def __init__(self, url=None):
        self.url = self.get_RealAddress(url)
        # 獲取用戶視頻的url
        self.user_video_url = 'https://www.douyin.com/aweme/v1/aweme/post/?{0}'
        self.user_id = re.search(r'user/(.*)\?', self.url).group(1)		# 用戶id
        requests.packages.urllib3.disable_warnings()
        self.session = requests.Session()
        self.target_folder = ''		# 創(chuàng)建文件的路徑
        self.queue = queue.Queue()		# 生成一個隊列對象
      
       def user_info(self):
        self.mkdir_dir()
        p = os.popen('node fuck.js %s' % self.user_id) # 獲取加密的signature
        signature = p.readlines()[0]
      
        user_video_params = {
         'user_id': str(self.user_id),
         'count': '21',
         'max_cursor': '0',
         'aid': '1128',
         '_signature': signature
        }
      
        # 獲取下載視頻的列表
        def get_aweme_list(max_cursor=None):
         if max_cursor:
          user_video_params['max_cursor'] = str(max_cursor)
         user_video_url = self.user_video_url.format(
          '&'.join([key + '=' + user_video_params[key] for key in user_video_params])) # 拼接參數
         response = requests.get(
          url=user_video_url, headers=self.header, verify=False)
         contentJson = json.loads(response.content.decode('utf-8')) # 將返回的進行utf8編碼
         aweme_list = contentJson.get('aweme_list', [])
         for aweme in aweme_list:
          video_name = aweme.get(
           'share_info', None).get('share_desc', None)  # 視頻的名字
          video_url = aweme.get('video', None).get('play_addr', None).get(
           'url_list', None)[0].replace('playwm', 'play')  # 視頻鏈接
          self.queue.put((video_name, video_url)) # 將數據進隊列
         if contentJson.get('has_more') == 1: # 判斷后面是不是還有是1就是還有
          return get_aweme_list(contentJson.get('max_cursor')) # 有的話獲取參數max_cursor
        get_aweme_list()
      
       # 下載視頻
       def get_download(self):
        while True:
         video_name, video_url = self.queue.get()
         file_name = video_name + '.mp4'
         file_path = os.path.join(self.target_folder, file_name)
         if not os.path.isfile(file_path):
          print('download %s form %s.\n' % (file_name, video_url))
          times = 0
          while times < 10:
           try:
            response = requests.get(
             url=video_url, stream=True, timeout=10, verify=False) # 開啟流下載
            with open(file_path, 'wb') as f:
             for chunk in response.iter_content(1024): # 返回迭代對象
              f.write(chunk)
             print('下載成功')
            break
           except:
            print('下載失敗')
           times += 1
      
       # 創(chuàng)建對應的文件夾
      
       def mkdir_dir(self):
        current_folder = os.getcwd()
        self.target_folder = os.path.join(
         current_folder, 'download/%s' % self.user_id)
        if not os.path.isdir(self.target_folder):
         os.mkdir(self.target_folder)
      
       # 短鏈接轉長地址
       def get_RealAddress(self, url):
        if url.find('v.douyin.com') < 0:
         return url
        response = requests.get(
         url=url, headers=self.header, allow_redirects=False) # allow_redirects 允許跳轉
        return response.headers['Location']
      
      if __name__ == '__main__':
       douyin = DouYin(url='http://v.douyin.com/J2B9Sk/')
       douyin.user_info()
       douyin.get_download()
      
      

      到此這篇關于python爬取抖音視頻的實例分析的文章就介紹到這了,更多相關如何使用python爬取抖音視頻內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

      相關文章

      • Python批量將圖片灰度化的實現代碼

        Python批量將圖片灰度化的實現代碼

        這篇文章主要介紹了Python批量將圖片灰度化的實現代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
        2020-04-04
      • python基于twisted框架編寫簡單聊天室

        python基于twisted框架編寫簡單聊天室

        這篇文章主要為大家詳細介紹了python基于twisted框架編寫簡單聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
        2018-01-01
      • python 中的paramiko模塊簡介及安裝過程

        python 中的paramiko模塊簡介及安裝過程

        這篇文章主要介紹了python 中的paramiko模塊簡介及安裝過程,通過實例詳解給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
        2020-02-02
      • Python機器學習入門(六)之Python優(yōu)化模型

        Python機器學習入門(六)之Python優(yōu)化模型

        這篇文章主要介紹了Python機器學習入門知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
        2021-08-08
      • Python命令行參數解析工具 docopt 安裝和應用過程詳解

        Python命令行參數解析工具 docopt 安裝和應用過程詳解

        這篇文章主要介紹了Python命令行參數解析工具 docopt 安裝和應用過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
        2019-09-09
      • Pandas中DataFrame.head()函數的具體使用

        Pandas中DataFrame.head()函數的具體使用

        DataFrame.head()是Pandas庫中一個非常重要的函數,用于返回DataFrame對象的前n行,本文主要介紹了Pandas中DataFrame.head()函數的具體使用,感興趣的可以了解一下
        2024-07-07
      • python可視化plotly?圖例(legend)設置

        python可視化plotly?圖例(legend)設置

        這篇文章主要介紹了python可視化plotly?圖例(legend)設置,主要介紹了關于python?的legend圖例,參數使用說明,具有很好的參考價值,希望對大家有所幫助,需要的朋友可以參考下賣你具體內容
        2022-02-02
      • python 獲取utc時間轉化為本地時間的方法

        python 獲取utc時間轉化為本地時間的方法

        今天小編就為大家分享一篇python 獲取utc時間轉化為本地時間的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
        2018-12-12
      • python用線性回歸預測股票價格的實現代碼

        python用線性回歸預測股票價格的實現代碼

        這篇文章主要介紹了python用線性回歸預測股票價格的實現代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
        2019-09-09
      • Python編程中的for循環(huán)語句學習教程

        Python編程中的for循環(huán)語句學習教程

        這篇文章主要介紹了Python編程中的for循環(huán)語句學習教程,是Python入門學習中的基礎知識,需要的朋友可以參考下
        2015-10-10

      最新評論