吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8899|回复: 136
收起左侧

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

    [复制链接]
安逸丫 发表于 2022-9-6 19:52
本帖最后由 安逸丫 于 2022-12-14 00:48 编辑

MXGIW`N}K%V(_P{MSI%]29C.png
E63_48]20N]X)4@]3MG6T7F.png
[Python] 纯文本查看 复制代码
import os
import requests


# 初始化文件夹
def ini():
    # 判断video文件夹是否存在
    if not os.path.exists('video'):
        os.mkdir('video')
    # 判断主页文件夹是否存在
    if not os.path.exists('video/主页'):
        os.mkdir('video/主页')


# 替换标题中的特殊字符
def replace(title):
    title = title.replace('\\', '')
    title = title.replace('/', '')
    title = title.replace(':', '')
    title = title.replace('*', '')
    title = title.replace('?', '')
    title = title.replace('"', '')
    title = title.replace('<', '')
    title = title.replace('>', '')
    title = title.replace('|', '')
    title = title.replace('\n', '')
    return title


# 链接重定向
def redirect(url):
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
    }
    response = requests.get(url, headers=header)
    return response.url


def start():
    url = input('请输入作者链接:')
    home(url)


def home(url):
    # 重定向
    url = redirect(url)
    sec_uid = url.split('user/')[1].split('?')[0]
    # 初始化游标
    max_cursor = 0
    # 初始化视频数量
    quantity = 0

    # 开始爬取
    while True:
        # 获取视频列表
        url = f'https://m.douyin.com/web/api/v2/aweme/post/?reflow_source=reflow_page&sec_uid={sec_uid}&count=21&max_cursor={max_cursor}'
        response = requests.get(url)
        data = response.json()
        # 获取视频列表
        aweme_list = data['aweme_list']
        for aweme in aweme_list:
            # 更新视频数量
            quantity += 1
            # 获取视频标题
            desc = aweme['desc']
            # 获取作者名称
            author = aweme['author']['nickname']
            # 获取视频链接
            video_url = aweme['video']['play_addr']['url_list'][0]

            # 判断作者文件夹是否存在
            if not os.path.exists(f'video/主页/{author}'):
                os.mkdir(f'video/主页/{author}')
            # 替换标题中的特殊字符
            desc = replace(desc)

            # 判断视频标题是否为空,为空则使用视频quantity+作者名称作为视频标题
            if desc == '':
                desc = f'{quantity}{author}'

            # 下载提示
            print(f'正在下载第{quantity}个视频:{quantity}.{desc}')
            # 开始下载
            with open(f'video/主页/{author}/{quantity}_{desc}.mp4', 'wb') as f:
                f.write(requests.get(video_url).content)
            # 超时处理

        # 判断是否还有下一页
        if data['has_more']:
            # 更新游标
            max_cursor = data['max_cursor']
        else:
            # 没有下一页则结束程序
            print('视频下载完成,累计下载视频数量:', quantity)


if __name__ == '__main__':
    ini()
    start()


该文章已失效请前往新帖:https://www.52pojie.cn/thread-1725336-1-1.html

免费评分

参与人数 30吾爱币 +31 热心值 +29 收起 理由
menoooooos + 1 + 1 我很赞同!
lhrmin + 1 + 1 我很赞同!
余年兄 + 1 + 1 我很赞同!
wscczy + 1 我很赞同!
txwq315 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
acntbbs + 1 谢谢@Thanks!
yjn866y + 1 + 1 我很赞同!
Eddie-sjm + 1 + 1 我很赞同!
我爱猫哥 + 1 + 1 我很赞同!
lr23653141 + 1 热心回复!
丨皮卡丘丶 + 3 + 1 能不能爬自己收藏的所有视频,非常需要
我的睡公主 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
nope-L + 1 + 1 谢谢@Thanks!
liuxiaoxin + 1 + 1 用心讨论,共获提升!
rongxiang17 + 1 我很赞同!
零祭缘 + 1 + 1 我很赞同!
Fwing + 1 + 1 我很赞同!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Arootuser + 1 我很赞同!
天御墨辰 + 1 + 1 我很赞同!
zqgege + 1 热心回复!
荒陌 + 1 + 1 我很赞同!
liqualife001 + 1 谢谢@Thanks!
lingweiqiu + 1 我很赞同!
ttkx101 + 1 鼓励转贴优秀软件安全工具和文档!
billsmiless + 2 + 1 我很赞同!
UUoh + 1 + 1 谢谢@Thanks!
ccwuax + 1 + 1 我很赞同!
zhaoqingdz + 1 + 1 谢谢@Thanks!
AG9000 + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 安逸丫 发表于 2022-12-8 13:48
本帖最后由 安逸丫 于 2022-12-8 23:41 编辑
wapj小新手 发表于 2022-12-7 20:08
12.5号测试回执json为空,post端口好像失效了

在请求头添加User-Agent
 楼主| 安逸丫 发表于 2022-9-7 17:37
willanx 发表于 2022-9-7 17:33
请问下request.get 的请求是怎么获取到,pc端的抖音抓不到这个链接

切换手机模式刷新一下就出来了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
yjn866y + 1 + 1 热心回复!

查看全部评分

zb0419 发表于 2022-9-13 10:09
请输入作者主页链接:https://www.douyin.com/user/MS4wLjABAAAAgHRTHEoERbW0q5mBVCjysdCBd7Gh9rVUXskIDByGQXo?vid=7132330132320144678
Traceback (most recent call last):
  File "c:/Users/zhou/Documents/百米货栈PAD/抖音下载.py", line 42, in <module>
    url = requests.get(url, headers=headers).url  # 获取重定向后的url
  File "C:\Users\zhou\anaconda3\lib\site-packages\requests\api.py", line 76, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\zhou\anaconda3\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\zhou\anaconda3\lib\site-packages\requests\sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\zhou\anaconda3\lib\site-packages\requests\sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\zhou\anaconda3\lib\site-packages\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\connectionpool.py", line 696, in urlopen
    self._prepare_proxy(conn)
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\connectionpool.py", line 964, in _prepare_proxy
    conn.connect()
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\connection.py", line 359, in connect
    conn = self._connect_tls_proxy(hostname, conn)
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\connection.py", line 500, in _connect_tls_proxy
    return ssl_wrap_socket(
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\util\ssl_.py", line 432, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls)
  File "C:\Users\zhou\anaconda3\lib\site-packages\urllib3\util\ssl_.py", line 474, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock)
  File "C:\Users\zhou\anaconda3\lib\ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "C:\Users\zhou\anaconda3\lib\ssl.py", line 997, in _create
    raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname
头像被屏蔽
shayu2021 发表于 2022-9-6 20:08
提示: 作者被禁止或删除 内容自动屏蔽
likaiaixuexi 发表于 2022-9-6 20:23
好软件,下载下来试试
zhaoqingdz 发表于 2022-9-6 20:29
感谢楼主分享!代码拿去学习了
双眼皮的微笑 发表于 2022-9-6 20:55
你这个代码注释习惯挺好的。
zcmrp 发表于 2022-9-6 21:04
    print(f'正在下载第{quantity}个视频:{video_name}')  # 打印视频名称
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 22-22: Non-BMP character not supported in Tk
mmmm12 发表于 2022-9-6 21:15
感谢楼主分享!代码拿去学习了
 楼主| 安逸丫 发表于 2022-9-6 21:19
zcmrp 发表于 2022-9-6 21:04
print(f'正在下载第{quantity}个视频:{video_name}')  # 打印视频名称
UnicodeEncodeError: 'UCS-2'  ...

你链接发我看看
 楼主| 安逸丫 发表于 2022-9-6 21:24
双眼皮的微笑 发表于 2022-9-6 20:55
你这个代码注释习惯挺好的。

我这注释太多反而觉得乱乱的
小白2021 发表于 2022-9-6 21:43
感谢楼主分享,我也在找,自己写了一个,老运行失败。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 23:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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