python递归下载极速资源的电影

import requests
import re
import os
from concurrent.futures import ThreadPoolExecutor
from Crypto.Cipher import AES
from bs4 import BeautifulSoup

"""
专门下载   《极速资源》  的电影
1.首先进入要下载的某个电影的主页,将网址输入程序
2.运行get_name方法,获取电影播放地址(非m3u8地址),key播放地址,以及电影名字
3.运行get_m3u8,最终获取到的是一个装有ts地址的列表
4.运行thread_download,开始多线程下载ts文件,在调用download方法时,可能会得到一个空文件
5.运行thread_decode,开始多线程解码ts文件,如果ts文件本身是空,那么解码会失败,但不会报错
6.运行check_ts,检查是不是全部解码完成,通过os.path.isfile('文件路径')反馈会一个新的列表self.new_lst,
    接收的是解码未成功的ts文件名称是self.lst列表中的索引,如果服务器断限制了你的访问,这地方会很有意思,
    总之,只要服务器端不是完全切断网络连接,就一定能全部解码完成。
7.运行marge,大功告成.
后记:
    class实在是太好玩了,比函数好用多了
    如果电脑性能好的话,可以修改ThreadPoolExecutor(50)里面的数值,数值越大,速度越快
"""


class Application:
    def __init__(self, url):
        self.url = url
        self.new_lst = []  # 接收解码失败的文件
        self.i = 0  # 统计download函数被重复调用的次数
        self.j = 0  # 统计经过多少级解码才完成全部解码
        self.IV = b'0000000000000000'  # 源文件32位,更改成16位
        self.headers = {
   
   
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                          'Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0'
        }

    def get_name(self):
        resp = requests.get(self.url, headers=self.headers)
        resp.close()
        # print(resp.text)
        bs = BeautifulSoup(resp.text, 'html.parser')
        self.url = bs.find('span', id='1_1t').text.split('$')[-1].strip()  # 这个地方必须要加strip()
        self.movie_name = bs.find('div', class_='vod-img').find('img').get('alt')  # 太好玩了,可以连续用find
        self.key_url = self.url + '/enc.key'

        # print(self.url)
        # print(self.key_url)

    def get_m3u8(self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值