python爬取抖音用户数据_python批量爬取下载抖音视频
本文实例为大家分享了python批量爬取下载抖音视频的具体代码,供大家参考,具体内容如下
import os
import requests
import re
import sys
import asyncio
import aiohttp
headers = {
'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'
}
VIDEO_URLS, PAGE = [], 1
def get_info(url):
"""
:param url: 用户的链接
:return:返回name,dytk,user_id 参数
"""
name = None
dytk = None
user_id = None
try:
response = requests.get(url, headers=headers)
user_id = response.url.split('/')[5].split('?')[0]
name = re.search(r'class="nickname">(.*?)<', response.text)[1]
dytk = re.search(r"dytk: '(.*?)'", response.text)[1]
except (TypeError, IndexError):
sys.stdout.write('Waring:输入的链接错误')
except requests.exceptions:
sys.stdout.write('Waring:链接错误')
finally:
return name, user_id, dytk
def make_dir(name):
"""
建立文件夹
:param name: 用户名称
:return:
"""
if not os.path.isdir(name):
os.mkdir(name)
else:
pass
def get_all_video(user_id, max_cursor, dytk):
"""
获取视频的地址
:param user_id:
:param max_cursor:
:param dytk:
:return:
"""
url = "https://www.amemv.com/aweme/v1/aweme/post/?"
params = {'user_id': user_id,
'count': 21,
'max_cursor': max_cursor,
'dytk': dytk}
try:
response = requests.get(url=url, params=params, headers=headers)
if response.status_code == 200:
datas = response.json()
for data in datas['aweme_list']:
name = data.get('share_info').get('share_desc')
url = data.get('video').get('play_addr').get('url_list')[0].replace('playwm', 'play')
VIDEO_URLS.append([name, url])
if datas['has_more'] == 1 and datas.get('max_cursor') != 0:
global PAGE
print(f'收集第{PAGE}页视频')
PAGE += 1
return get_all_video(user_id, datas.get('max_cursor'), dytk)
else:
print('收集完成')
return VIDEO_URLS
else:
print('状态码:', response.status_code)
return None
except Exception as e:
print('Waring:', e)
return
async def download_video(index, name, video_name, url):
"""
下载视频
:param index: 视频id
:param name: 用户名称
:param video_name: 视频名称
:param url: 下载url
:return:
"""
print(f'正在下载第{index}个视频:{video_name}')
video_path = '{}/{}.mp4'.format(name, video_name)
if not os.path.isfile(video_path):
try:
async with aiohttp.ClientSession() as session:
async with session.get(url=url, headers=headers, ssl=False) as response:
with open(video_path, 'wb') as f:
while True:
chunk = await response.content.read(1024)
f.write(chunk)
if not chunk:
break
print(f'下载完成第{index}个视频:{video_name}')
except Exception as e:
print('waring:download faild', video_name, e)
return
else:
print('文件已存在')
def main():
url = 'http://v.douyin.com/dEorkn/'
name, user_id, dytk = get_info(url)
if not (name, user_id, dytk):
return
make_dir(name)
get_all_video(user_id, 0, dytk)
print(f'{name}:总共有{len(VIDEO_URLS)}个视频')
tasks = []
for index, item in enumerate(VIDEO_URLS, 1):
video_name = item[0]
url = item[1]
tasks.append(asyncio.ensure_future(download_video(index, name, video_name, url)))
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait(tasks))
loop.run_until_complete(asyncio.sleep(0))
loop.close()
print(f'{name}视频下载完成!')
if __name__ == '__main__':
main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: python批量爬取下载抖音视频
本文地址: http://www.cppcns.com/jiaoben/python/262411.html
python爬取抖音用户数据_python批量爬取下载抖音视频相关推荐
- python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...
如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...
- python调用api接口获取数据_python批量爬取NCBI基因注释并调用谷歌API批量翻译
作者:沙雕学习小组 这里有视频教程:https://www.bilibili.com/video/av87724182 今天想实现这个功能: 差异分析得到了200多个基因(甚至更多) 我要一个一个把基 ...
- 基于Webmagic的爬取B站用户数据的爬虫
基于Webmagic的爬取B站用户数据的爬虫 github: https://github.com/Al-assad/Spider-bilibiliUser-active 数据示例样本:http:// ...
- python怎么批量爬取图片_python批量爬取网络图片
上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看: 我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里 ...
- python爬取图片_python批量爬取网络图片
上篇通过python爬取了一篇网络小说,初步了解了爬虫的四步流程,本文稍微扩展一点,试着从网页中爬取出多个图片,具体来看看: 我们今天试着从下面图1的网页上将所有图片都爬取出来,放在一个指定的文件夹里 ...
- python爬取抖音用户评论_python实现模拟器爬取抖音评论数据的示例代码
目标: 由于之前和朋友聊到抖音评论的爬虫,demo做出来之后一直没整理,最近时间充裕后,在这里做个笔记. 提示:大体思路 通过fiddle + app模拟器进行抖音抓包,使用python进行数据整理 ...
- python爬取抖音用户数据的单位是_爬取并分析一下B站的最热视频排行榜,看看大家都喜欢看什么视频...
前言 现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户.源源不断的流量让B站的up主们也是粉丝数目不断暴涨,百万粉 ...
- python提取ajax异步加载数据_python爬取豆瓣电影分类排行榜引出的异步加载(AJAX)问题...
1.背景 之前的文章中已经介绍过猫眼TOP100的电影信息爬取案例,网页每页有10条电影信息,通过翻页发现URL变化规律构造循环爬取10页100条全部电影信息.但是豆瓣电影分类排行榜的网页情况就所不同 ...
- python爬取微博评论点赞数_Python selenium爬取微博数据代码实例
爬取某人的微博数据,把某人所有时间段的微博数据都爬下来. 具体思路: 创建driver-–get网页--找到并提取信息-–保存csv--翻页--get网页(开始循环)-----没有"下一页& ...
最新文章
- 自动化神经网络理论进展缓慢,AutoML算法的边界到底在哪?
- shiro学习(3):用户权限
- Oracle - 新装数据库、新建用户注意事项
- LeetCode 1616. 分割两个字符串得到回文串
- linux内核优化策略,linux系统调优小结
- JAVA只要掌握内部类,多继承和单继承都不是问题
- 计算机编程英语怎么写,计算机编程英语词汇大全.pdf
- Angular JS
- 平衡二叉树的插入与调整
- 用Tornado实现web聊天室(前端采用vue+bootstrap)
- 史上最全python常用英语单词,建议收藏
- 百度wz竞价开户推广营销的四大好处
- 用计算机信息术语感恩老师,赞美老师锦旗用语大全 感恩老师的句子
- c.n.discovery.InstanceInfoReplicator : There was a problem with the instance info replicator
- RxSwift | 万物皆 rx 的原因
- 浅谈游戏数据分析------留存篇一---留存折损
- 解决:el-table组件中设置show-overflow-tooltip属性,数据过多时闪烁不显示不能复制问题。
- 学习难度最高的五大编程语言,Java排第3,Python竟然都不能上榜
- js高级程序设计第四部分
- 原装苹果手机_苹果手机换屏的“学问”这么多,一招教你快速辨别iPhone X原装屏...