幽灵资源网 Design By www.bzswh.com
本文实例为大家分享了python实现抖音视频批量下载的具体代码,供大家参考,具体内容如下
这里就拿最近很火的抖音视频为例,利用API来实现用户抖音视频的批量下载
主要用到的模块有
1、requests模块;
2、bs4模块;
import requests import bs4 import os import json import re import sys import time from contextlib import closing requests.packages.urllib3.disable_warnings() class Spider(): def __init__(self): self.headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36' } print('[INFO]:Douyin App Video downloader...') print('[Version]: V1.0') print('[Author]: Charles') # 外部调用运行 def run(self): user_id = input('Enter the ID:') try: int(user_id) except: print('[Error]:ID error...') return video_names, video_urls, nickname = self._parse_userID(user_id) if nickname not in os.listdir(): os.mkdir(nickname) print('[INFO]:Number of Videos <%s>' % len(video_urls)) for num in range(len(video_names)): print('[INFO]:Parsing <No.%d> <Url:%s>' % (num+1, video_urls[num])) temp = video_names[num].replace('\\', '') video_name = temp.replace('/', '') self._downloader(video_urls[num], os.path.join(nickname, video_name)) print('\n') print('[INFO]:All Done...') # 视频下载 def _downloader(self, video_url, path): size = 0 download_url = self._get_download_url(video_url) with closing(requests.get(download_url, headers=self.headers, stream=True, verify=False)) as response: chunk_size = 1024 content_size = int(response.headers['content-length']) if response.status_code == 200: sys.stdout.write('[File Size]: %0.2f MB\n' % (content_size/chunk_size/1024)) with open(path, 'wb') as f: for data in response.iter_content(chunk_size=chunk_size): f.write(data) size += len(data) f.flush() sys.stdout.write('[Progress]: %0.2f%%' % float(size/content_size*100) + '\r') sys.stdout.flush() # 获得视频下载地址 def _get_download_url(self, video_url): res = requests.get(url=video_url, verify=False) soup = bs4.BeautifulSoup(res.text, 'lxml') script = soup.find_all('script')[-1] video_url_js = re.findall('var data = \[(.+)\];', str(script))[0] html = json.loads(video_url_js) return html['video']['play_addr']['url_list'][0] # 通过user_id获取该用户发布的所有视频 def _parse_userID(self, user_id): video_names = [] video_urls = [] unique_id = '' while unique_id != user_id: search_url = 'https://api.amemv.com/aweme/v1/discover/search/"text-align: center">![]()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
幽灵资源网 Design By www.bzswh.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
幽灵资源网 Design By www.bzswh.com
暂无评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。