qianaonan 发表于 2023-10-2 18:04

python52行下载小红书分享链接视频

本帖最后由 qianaonan 于 2023-10-2 19:59 编辑

没做ui界面(主要是懒),直接是输入分享文本的,我自己用python3.11程序运行无效,请使用pycharm或者其他编程软件运行。

如果是电脑网页的小红书视频输入的是这个链接,不是网址。安卓嘛就是视频分享的链接。粘贴出来就是那个带表情图的链接,别搞错了。
脚本如下:
import requests
import re
import os
script_dir = os.path.dirname(os.path.abspath(__file__))
fx=input()
urls = re.findall(r'http?://(?:||[$-_@.&+]|[!*\\(\\),]|(?:%))+', fx)
print(urls)
url = urls # 替换为实际的分享链接
# 发送请求
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.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脚本吧!
最后那些搬运的,搬运请注明搬运地址,别搞得是你自己写的一样,刚写的教程第二天就发在别的网站上了,一天天的净干这些无聊的事情。

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
虽然这几行代码没有接口与算法,也没啥难度,但是搬运确实可耻

前几天看到自己辛辛苦苦写的教程发到别人的博客里实在太气了,重点是连一个字都没有改,也没标注搬运地址,属实无语,正好借着这个发泄一下:dizzy:。

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,对于静态,和防爬要求不太高的,肯定是利器。
页: [1] 2 3
查看完整版本: python52行下载小红书分享链接视频