新手勿喷 加密电影爬取,理论上电视剧也可以

查看 183|回复 10
作者:star0angel   
第一次尝试加密的视频  缺少麻烦一点
本来想尝试一下ffmpeg.exe下载和合并  鼓捣了大半天没整明白 老是报错  有大神教下怎么用吗
还有ffmpeg.exe用的话能一起打包吗  有大神能教教嘛  百度了半天没弄明白 一堆报错
最后还是土办法  仅做学习交流用 请勿用于非法用途  请勿滥用!!!!
增加了sem限制 免得总是下载错误  增加了删除过度文件的操作


3.jpg (143.49 KB, 下载次数: 1)
下载附件
2024-5-21 08:15 上传

放个链接吧:仅做学习交流用 请勿用于非法用途  请勿滥用!!!!
https://star0angel.lanzouw.com/inTvo1zbjb7a
密码:c80s
关于刚刚看到有些朋友说闪退  粘贴链接最好看看能不能播放或者是不是网址有问题比如多了空格啥的反正我没遇到过  这个网站很多链接根本不能播放  我也是win11  刚刚特意测试了下代码中的示例网站没啥问题速度还可以  这个图片摆不来  第一张和第二章是刚刚测试的  最后一张是昨天上传之前测试电视剧的就这样吧!!


2.jpg (137.67 KB, 下载次数: 1)
下载附件
2024-5-21 08:06 上传

[Python] 纯文本查看 复制代码import asyncio
import time
from Crypto.Cipher import AES
import requests
import re
import os
from urllib.parse import urljoin
import aiohttp
import aiofiles
import shutil
# 定义请求头
hearders = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36'
}
def get_m3u8_1(url):
    """
    从给定的URL获取初始的m3u8链接和视频名称,并创建相关目录。
    :param url: 视频链接
    :return: 视频名称和m3u8链接的元组
    """
    resp = requests.get(url, headers=hearders)
    if resp.status_code == 200:
        # print(resp.text)
        pattern = re.compile(r'link_pre":"(.*?)","url":"(.*?)"')
        pattern_name = re.compile(r'《(.*?)》')
        result = re.search(pattern, resp.text)
        m3u8_url = result.group(2)
        m3u8_url = m3u8_url.replace('\\', '')
        result_name = re.search(pattern_name, resp.text)
        name = result_name.group(1)
        name = name.replace(' ', '')
        os.makedirs(f'{name}/encryption')
        os.makedirs(f'{name}/decryption')
        with open(name + '/' + '1.m3u8', 'w') as f:
            f.write(requests.get(m3u8_url, headers=hearders).text)
        return name, m3u8_url
def get_m3u8_2(name, m3u8_url):
    """
    获取深层次的m3u8链接(如果存在)。
    :param name: 视频名称
    :param m3u8_url: 初始或上层的m3u8链接
    :return: 深层次m3u8链接或原链接
    """
    path = f'{name}/1.m3u8'
    if os.path.exists(path):
        with open(path, 'r') as f:
            m3u8_lst = f.readlines()
            # print(len(m3u8_lst))
            if (len(m3u8_lst)

链接, 名称

最新的   

[Python] 纯文本查看 复制代码import asyncio
import time
from Crypto.Cipher import AES
import requests
import re
import os
from urllib.parse import urljoin
import aiohttp
import aiofiles
import shutil
# 定义请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36'
}
def get_m3u8_1(url):
    """
    从给定的URL获取初始的m3u8链接和视频名称,并创建相关目录。
    :param url: 视频链接
    :return: 视频名称和m3u8链接的元组
    """
    resp = requests.get(url, headers=headers)
    if resp.status_code == 200:
        pattern = re.compile(r'link_pre":"(.*?)","url":"(.*?)"')
        pattern_name = re.compile(r'《(.*?)》')
        result = re.search(pattern, resp.text)
        if result:
            m3u8_url = result.group(2)
            m3u8_url = m3u8_url.replace('\\', '')
        else:
            raise ValueError("No m3u8 URL found in the provided URL")
        result_name = re.search(pattern_name, resp.text)
        if result_name:
            name = result_name.group(1)
            name = name.replace(' ', '')
        else:
            raise ValueError("No video name found in the provided URL")
        os.makedirs(f'{name}/encryption', exist_ok=True)
        os.makedirs(f'{name}/decryption', exist_ok=True)
        with open(name + '/' + '1.m3u8', 'w') as f:
            f.write(requests.get(m3u8_url, headers=headers).text)
        return name, m3u8_url
def get_m3u8_2(name, m3u8_url):
    """
    获取深层次的m3u8链接(如果存在)。
    :param name: 视频名称
    :param m3u8_url: 初始或上层的m3u8链接
    :return: 深层次m3u8链接或原链接
    """
    path = f'{name}/1.m3u8'
    if os.path.exists(path):
        with open(path, 'r') as f:
            m3u8_lst = f.readlines()
            if (len(m3u8_lst)
增加了异常处理,仅供学习使用
主要修改点
  • [color=var(--tw-prose-bold)]get_m3u8_1 函数中检查正则表达式匹配结果:
  • 在调用 result.group 和 result_name.group 之前,检查 result 和 result_name 是否为 None。
  • 如果匹配失败,抛出一个 ValueError 异常,并在 all_func 中捕获和处理异常。
  • [color=var(--tw-prose-bold)]all_func 函数中的异常处理:
  • 捕获 all_func 中任何函数可能抛出的异常,并打印错误消息。

    通过这些修改,你可以确保在正则表达式没有匹配到任何内容时,程序不会崩溃,并且会输出适当的错误消息。


    image.png (97.32 KB, 下载次数: 1)
    下载附件
    2024-5-21 19:37 上传

  • dx163   

    我win11上测试失败了,把网址粘贴,回车 ,程序就退出了。
    cbkxh   

    谢谢分享,研究一下
    jswxll   

    只为学习研究,不可非法用途!
    于生   

    这个牛逼,是所有电影(非其他电影)都可以下载吗?直接输入名称即可?
    zsf123   

    这个非常实用,感谢大神
    想不出名字   

    好像比较简单?我研究一下
    林古月凡   

    下来用看看效果如何?
    sondycnc   

    粘贴链接后回车就闪退,啥情况?
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部