本帖最后由 qianaonan 于 2023-10-2 19:59 编辑
没做ui界面(主要是懒),直接是输入分享文本的,我自己用python3.11程序运行无效,请使用pycharm或者其他编程软件运行。
如果是电脑网页的小红书视频输入的是这个链接,不是网址。安卓嘛就是视频分享的链接。粘贴出来就是那个带表情图的链接,别搞错了。
脚本如下:
[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脚本吧!
最后那些搬运的,搬运请注明搬运地址,别搞得是你自己写的一样,刚写的教程第二天就发在别的网站上了,一天天的净干这些无聊的事情。 |