话痨司机啊 发表于 2022-8-2 10:38

【2023-3-19】蓝光影视下载器1.0(更新)

本帖最后由 话痨司机啊 于 2023-3-19 15:23 编辑

# 前言
蓝光影视还是不错的网站(www.lgyy.vip),电影电视剧都还算高清。原先的代码已经不能用了,新的蓝光影视加入了反调试和m3u8地址加密;以下为更新后的代码。
# 声明
**软件仅供学习交流使用,禁止商业使用,禁止用来做危害网络安全的事情,因错误使用造成的危害由使用者负责。**
# 使用方法
解压缩后文件夹内urls.txt,打开后每行添加一个地址即可按顺序下载
# 注意
本人非代码使用者,只是写出来,未经测试,遇到bug请平台留言,欢迎各位互相交流,共同进步。
# 下载
- 一共是两个版本,源码和打包好的程序,修改完地址双击程序运行即可。
- 运行环境Python3.913 && win10

### **[点此下载](https://www.123pan.com/s/E3kbVv-bWRBH.html) 提取码:f9qD**

核心代码:
import base64
import json
import re
import time
from pathlib import Path
from urllib import parse

import requests
from hm3u8dl_cli import m3u8download
from loguru import logger
from lxml import etree
from urllib3 import disable_warnings

disable_warnings()

if not Path('logs').exists(): Path('log').mkdir(parents=True, exist_ok=True)
logger.add(f'logs/bluelog_{time.strftime("%Y%m%d_%H%M%S", time.localtime())}.log', level='INFO')


class BlueSpider:

    def __init__(self, url):
      self.url = url
      self.headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.44',
            'Host': 'www.lgyy.vip'
      }

    def get_html(self):
      res = requests.get(self.url, headers=self.headers, verify=False)
      res.encoding = 'utf-8'
      return res.text

    def parse_html(self, html):
      # 解析网页,获取所有的标签
      logger.info('开始解析网页')
      selector = etree.HTML(html)
      # 所有的标签
      tags = selector.xpath('//div[@class="player-box-main"]//script/text()')
      for i in tags:
            if i.startswith('var player_aaaa'):
                # 将Unicode转换为中文
                _unicode = i.encode('utf8')
                rx = _unicode.decode("unicode_escape")
                rx = parse.unquote(rx)
                rx = json.loads(rx.replace('var player_aaaa=', ''))
                title = rx.get('vod_title')
                _url = rx.get('url')
                return title, _url

    # 再次请求
    def get_html_again(self, url):
      url = f'https://www.lgyy.vip/static/player/ffzy.php?url={url}'
      response = requests.request("GET", url, headers=self.headers, verify=False)
      base64_url = re.findall(r'var\surl.*?;', response.text)
      return base64_url

    def decode_url(self, _url):
      logger.info(f'开始解析{_url}')
      xz = base64.b64decode(bytes(_url, encoding='utf-8'))
      logger.info(f'解析完成后地址{xz.decode()}')
      return xz.decode()

    def downlaod_m3u8(self, title, m3u8_url):
      logger.info(f'准备下载{title}')
      m3u8download(m3u8_url, title)
      logger.info(f'下载完成!')

    @logger.catch
    def run(self):
      title, _url = self.parse_html(self.get_html())
      base64_url = self.get_html_again(_url)
      m3u8_url = self.decode_url(base64_url)
      self.downlaod_m3u8(title, m3u8_url)


if __name__ == '__main__':
    # 测试
    target_url = "https://www.lgyy.vip/vodplay/84617-1-1.html"
    BlueSpider(target_url).run()

效果图:

话痨司机啊 发表于 2023-3-19 15:18

xitelexf 发表于 2023-3-19 11:27
怎么用啊?求助

已更新了~,把url.txt里的地址填好,按着上面的格式一行一个。运行程序。

maniacwj 发表于 2022-8-2 11:55

龍謹 发表于 2022-8-2 10:44
我想说我是为着学习源码,不是为了下载影视来的,有人信吗?

巧了,我也是只学习技术,下载是啥???

龍謹 发表于 2022-8-2 10:44

我想说我是为着学习源码,不是为了下载影视来的,有人信吗?

Seat0n 发表于 2022-8-2 10:42

感觉还不错哦 下来看看

TMwaiter 发表于 2022-8-2 10:42

出错,用不了,麻烦楼主看下

ahwhzw 发表于 2022-8-2 10:45

这是什么东西,不会用呀,浪费时间

cfdx888 发表于 2022-8-2 10:45

楼主辛苦了谢谢

dec24 发表于 2022-8-2 10:49

感谢分享下载试试看

89684828 发表于 2022-8-2 10:50

标记一下,谢谢楼主!

Kodak001 发表于 2022-8-2 11:09

能下载阿凡达吗

zpwz 发表于 2022-8-2 11:28

感谢分享
页: [1] 2 3 4 5 6 7 8
查看完整版本: 【2023-3-19】蓝光影视下载器1.0(更新)