找回密码
  注册[Register]
查看: 538|回复: 12

[python] python爬取抖音作者主页视频

[复制链接]
发表于 2022-9-7 09:39 | 显示全部楼层 |阅读模式
禁止求评分、诱导评分、互刷评分、互刷悬赏值,违规者封号处理。
禁止发布推广、邀请码、邀请链接、二维码或者有利益相关的任何推广行为。
所有非原创软件请发布在【精品软件区】,发帖必须按照本版块版规格式发帖。

194942pnor7r9nzsop7rr8.png 194951bx7y7fhet7yzfpfy.png

[Python] 纯文本查看 复制代码
import re
import os
 
import requests
 
 
def start(url):
    sec_uid = re.findall('user/(.*)\?', url)[0]  # 从url中提取sec_uid
    max_cursor = '0'  # 初始max_cursor
    quantity = 0  # 初始视频数量
    while True:
        data = requests.get(
            f'https://m.douyin.com/web/api/v2/aweme/post/?reflow_source=reflow_page&sec_uid={sec_uid}&count=21&max_cursor={max_cursor}').json()  # 请求数据
        max_cursor = data['max_cursor']  # 获取max_cursor
        aweme_list = data['aweme_list']  # 获取视频列表
        for aweme in aweme_list:  # 遍历视频列表
            quantity += 1  # 视频数量+1
            video_name = aweme['desc']  # 获取视频名称
            video_url = aweme['video']['play_addr']['url_list'][0]  # 获取视频地址
            nickname = aweme['author']['nickname']  # 获取作者昵称
            print(f'正在下载第{quantity}个视频:{video_name}')  # 打印视频名称
            video_name = video_name.replace('\n', ' ')  # 吧\n替换成空格
            if video_name == '':
                video_name = str(quantity) + nickname  # 如果视频名称为空,就用视频数量+作者昵称作为视频名称
            if not os.path.exists(f'./{nickname}'):  # 如果作者文件夹不存在,就创建
                os.mkdir(f'./{nickname}')  # 如果作者文件夹不存在,就创建一个
            with open(f'./{nickname}/{video_name}.mp4', 'wb') as f:
                f.write(requests.get(video_url).content)
        has_more = data['has_more']
        if not has_more:  # 如果has_more为False 说明没有更多视频了
            break  # 退出循环
    print(f'共下载{quantity}个视频')
 
 
if __name__ == '__main__':
    url = input(
        '请输入作者主页链接:')  # 输入作者主页链接 例:https://www.douyin.com/user/MS4wLjABAAAAm-YgirNQo_9nm1B8TNynOD5ZrYBtesVrgBuaZaS2dzQ?vid=6907843457583205646
    headers = {
        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
    }
    url = requests.get(url, headers=headers).url  # 获取重定向后的url
    start(url)

如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2022-9-7 09:39 | 显示全部楼层
谢谢分享!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 10:15 | 显示全部楼层
6666666666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 10:17 | 显示全部楼层
先收藏了,万一用到呢
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 11:24 | 显示全部楼层
多谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 11:25 | 显示全部楼层

支持楼主,谢谢分享。
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 11:29 | 显示全部楼层
6666
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 13:11 | 显示全部楼层
感谢楼主分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 14:23 | 显示全部楼层
谢谢@Thanks!
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

发表于 2022-9-7 15:01 | 显示全部楼层

感谢楼主的分享
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心值】和【牛币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 有用 没用

使用道具 举报

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

RSS订阅|手机版|小黑屋|大牛论坛 |我的广告

GMT+8, 2024-5-8 21:32 , Processed in 0.047445 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表