吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2698|回复: 20
收起左侧

[Python 原创] python52行下载小红书分享链接视频

[复制链接]
qianaonan 发表于 2023-10-2 18:04
本帖最后由 qianaonan 于 2023-10-2 19:59 编辑

没做ui界面(主要是懒),直接是输入分享文本的,我自己用python3.11程序运行无效,请使用pycharm或者其他编程软件运行。
image.png
如果是电脑网页的小红书视频输入的是这个链接,不是网址。安卓嘛就是视频分享的链接。粘贴出来就是那个带表情图的链接,别搞错了。
脚本如下:
[Python] 纯文本查看 复制代码
import requests
import re
import os
script_dir = os.path.dirname(os.path.abspath(__file__))
fx=input()
urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', fx)
print(urls[0])
url = urls[0] # 替换为实际的分享链接
# 发送请求
response = requests.get(url)
# 检查状态码和处理重定向
if response.status_code == 200:
    page_content = response.text
    # 处理页面内容
elif response.status_code // 100 == 3:
    # 获取重定向的新链接
    redirect_url = response.headers['Location']
    # 继续请求新链接
    new_response = requests.get(redirect_url)
    if new_response.status_code == 200:
        page_content = new_response.text
        # 处理最终页面内容
    else:
        print("无法获取最终页面")
else:
    print("请求失败")
# 处理页面内容
#print(page_content)
def get_mid_string(html, start_str, end):
    try:
        start = html.find(start_str)
        if start >= 0:
            start += len(start_str)
            end = html.find(end, start)
            if end >= 0:
                return html[start:end].strip()
    except:
        return None
video=get_mid_string(page_content,'"masterUrl":"','","')
title=get_mid_string(page_content,'</style><title>','</title>')
#print(title)
video_url = video.replace("\\u002F", "/")
  # 替换为实际的视频URL
output_file = os.path.join(script_dir, "{}.mp4".format(title))
# 发送GET请求以获取视频内容
response = requests.get(video_url, stream=True)
if response.status_code == 200:
    # 打开一个文件用于保存视频内容
    with open(output_file, 'wb') as file:
        for chunk in response.iter_content(chunk_size=1024):
            if chunk:
                file.write(chunk)
    print("视频下载完成")
else:
    print("无法下载视频")

命令窗口输入分享链接(一定要是视频的分享链接),脚本会自动下载到与脚本同目录的文件夹中,自己测试了几个分享链接,都成功下载了,没有遇到bug,所以不确定是不是每一个分享链接都能确保下载成功。
本人没有下载小红书视频的需求,所以不做网页端了,就写一个python脚本吧!
最后那些搬运的,搬运请注明搬运地址,别搞得是你自己写的一样,刚写的教程第二天就发在别的网站上了,一天天的净干这些无聊的事情。

免费评分

参与人数 6吾爱币 +12 热心值 +6 收起 理由
lymuck33 + 1 + 1 谢谢@Thanks!
15126819695 + 1 + 1 在源码里面学习到了处理重定向的方法,谢谢
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
py学徒 + 1 + 1 用心讨论,共获提升!
luolifu + 1 + 1 谢谢@Thanks!
XY1993 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

48325619 发表于 2023-10-2 18:14
虽然这几行代码没有接口与算法,也没啥难度,但是搬运确实可耻
Pojawa 发表于 2023-10-2 19:28
python 的 requests 模块还能用?之前写脚本的时候发现它对大部分网站的支持已经不算友好了,尤其是像weibo这类一个链接会跳转好几次验证还带一堆异步加载的页面,被迫转向 selenium。
不过对于相对静态切很少异步加载的网页(比如m.weibo.com),requests还是够用的。
KBH 发表于 2023-10-2 18:11
 楼主| qianaonan 发表于 2023-10-2 18:21
48325619 发表于 2023-10-2 18:14
虽然这几行代码没有接口与算法,也没啥难度,但是搬运确实可耻

前几天看到自己辛辛苦苦写的教程发到别人的博客里实在太气了,重点是连一个字都没有改,也没标注搬运地址,属实无语,正好借着这个发泄一下
 楼主| qianaonan 发表于 2023-10-2 19:58
Pojawa 发表于 2023-10-2 19:28
python 的 requests 模块还能用?之前写脚本的时候发现它对大部分网站的支持已经不算友好了,尤其是像weibo ...

还是看网页吧,很多网页我觉得还是喜欢用requests,selenium感觉就像是写了自动脚本。
agas 发表于 2023-10-2 20:04
短小精湛,我还停留在requests瞎用的状态
 楼主| qianaonan 发表于 2023-10-2 20:13
agas 发表于 2023-10-2 20:04
短小精湛,我还停留在requests瞎用的状态

慢慢来。
qclient 发表于 2023-10-3 09:23
可惜不能图片
py学徒 发表于 2023-10-3 10:21
Pojawa 发表于 2023-10-2 19:28
python 的 requests 模块还能用?之前写脚本的时候发现它对大部分网站的支持已经不算友好了,尤其是像weibo ...

selenium 多慢;
requests,对于静态,和防爬要求不太高的,肯定是利器。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 17:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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