仿云雀网页视频检测下载

环境搭建

ffpemg下载

pip install selenium

pip install BeautifulSoup

pip install ffmpy3

getMovePage.py
python 复制代码
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service
edge_path = r"C:\Users\11313\.cache\selenium\msedgedriver\win64\128.0.2739.67\msedgedriver.exe"

class WebBrowser:
    def __init__(self):
        # 无可视化界面
        edge_options = Options()
        edge_options.add_argument('headless')
        #禁用GPU
        edge_options.add_argument('disable-gpu')
        edge_options.add_argument('disable-blink-features=AutomationsControlled')
        # edge_options.add_experimential_option('excludeSwitchs', ['enable-automation'])
        user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0"
        edge_options.add_argument(f'user_agent={user_agent}')
        edge_options.add_argument(f'lang=zh_CN.UTF-8')
        edge_options.add_argument(f'UseWebView2=True')
        #edge_options.add_experimental_option("debuggerAddress", "localhost:64218")
        edge_options.add_argument(f'enable-automation') 
        service = Service(executable_path=edge_path, port=53478, verbose = True)
        self.browser = webdriver.Edge(service=service, options=edge_options)

    def exit(self):
        # 清理,关闭浏览器
        self.browser.quit()

    def getContent(self, url):        
        # 打开目标网页

        # 等待元素加载完成
        self.browser.get(url)
        
        # 获取页面内容
        content = self.browser.page_source
        
        return content

# url="https://www.kankanwu.com/Domestic/sifangguan/player-0-0.html"
# browser = WebBrowser()   
# # 处理页面内容
# print(browser.getContent(url))
# browser.exit()

注: 如果出现python msedgedriver Can not connect to the Service,请手动启动edge_path,将port=53478替换为启动后端口号,再重新启动程序

getM3u8.py
python 复制代码
import requests
from bs4 import BeautifulSoup 
from bs4 import Comment
import getMovePage

# 地址解析
def parselKanKanWuUrl(searchText):
    # search_Obj=search_html.find_all("iframe")
    # print(search_Obj)

    startIndex = searchText.find("https://v8.fentvoss.com")
    if(-1 == startIndex or None == startIndex):
        return []
    endIndex = searchText.find("index.m3u8", startIndex)
    if(-1 == endIndex or None == endIndex):
        return []
    m3u8Url = searchText[startIndex : endIndex + len("index.m3u8")]
    return [m3u8Url]

def getM3u8List(url):
    browser = getMovePage.WebBrowser()   
    # 处理页面内容
    content = browser.getContent(url)

    # search_html=BeautifulSoup(content,"html")
    # print(type(search_html))
    # tags = search_html.getText()
    # print(tags)
    # comments = [tag.string for tag in tags if isinstance(tag.string, Comment)]
    browser.exit()
    # with open("./context.txt", 'w') as file:
    #     file.write('\n'.join(content))
    # print(search_html.contents)
    return parselKanKanWuUrl(content)

# print(getM3u8List("https://www.kankanwu.com/Domestic/sifangguan/player-0-0.html"))
downM3u8.py
python 复制代码
from ffmpy3 import FFmpeg 

def downM3u8(m3u8list):
    FFmpegDir = r"E:\program\ffmpeg\bin\ffmpeg.exe"
    for i,url in enumerate(m3u8list):
        FFmpeg(FFmpegDir, inputs={url: None}, \
        outputs={'第{}集.mp4'.format(i):None}).run()

注: FFmpegDir 需替换为环境搭建时安装位置

saveVideo.py
python 复制代码
import getM3u8
import downM3u8

url = "https://www.kankanwu.com/Domestic/sifangguan/player-0-0.html"

m3u8 = getM3u8.getM3u8List(url)
downM3u8.downM3u8(m3u8)

注:集数切换只需改后缀,如player-0-2.html表示第二集

效果

创作不易,小小的支持一下吧!

相关推荐
@HNUSTer10 分钟前
基于 Visual Studio Code 配置 Python 开发环境详细教程
ide·vscode·python·csdn开发云
tuotali202637 分钟前
天然气压缩机技术2026,高可靠性长周期运行与智能运维融合路径
运维·python
We་ct39 分钟前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝
格林威40 分钟前
工业相机图像高速存储(C#版):内存映射文件方法,附Basler相机C#实战代码!
开发语言·人工智能·数码相机·c#·机器视觉·工业相机·堡盟相机
Nuopiane41 分钟前
MyPal3(3)
java·开发语言
Ama_tor41 分钟前
Flask零基础进阶(中)
后端·python·flask
love530love43 分钟前
Windows 11 源码编译 vLLM 0.16 完全指南(RTX 3090 / CUDA 12.8 / PyTorch 2.7.1)
人工智能·pytorch·windows·python·深度学习·vllm·vs 2022
lihihi44 分钟前
P1650 [ICPC 2004 Shanghai R] 田忌赛马(同洛谷2587)
开发语言·算法·r语言
进击的小头1 小时前
第3篇:最优控制理论数学基础——矩阵与向量的导数
python·线性代数·机器学习·矩阵
浩瀚之水_csdn1 小时前
Flask 深度解析:从微内核到企业级架构
python·架构·flask