
环境搭建ffpemg下载pip install seleniumpip install BeautifulSouppip install ffmpy3getMovePage.pyfrom selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.edge.service import Service edge_path rC:\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-featuresAutomationsControlled) # 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(fuser_agent{user_agent}) edge_options.add_argument(flangzh_CN.UTF-8) edge_options.add_argument(fUseWebView2True) #edge_options.add_experimental_option(debuggerAddress, localhost:64218) edge_options.add_argument(fenable-automation) service Service(executable_pathedge_path, port53478, verbose True) self.browser webdriver.Edge(serviceservice, optionsedge_options) def exit(self): # 清理关闭浏览器 self.browser.quit() def getContent(self, url): # 打开目标网页 # 等待元素加载完成 self.browser.get(url) # 获取页面内容 content self.browser.page_source return content # urlhttps://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将port53478替换为启动后端口号再重新启动程序getM3u8.pyimport requests from bs4 import BeautifulSoup from bs4 import Comment import getMovePage # 地址解析 def parselKanKanWuUrl(searchText): # search_Objsearch_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_htmlBeautifulSoup(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.pyfrom ffmpy3 import FFmpeg def downM3u8(m3u8list): FFmpegDir rE:\program\ffmpeg\bin\ffmpeg.exe for i,url in enumerate(m3u8list): FFmpeg(FFmpegDir, inputs{url: None}, \ outputs{第{}集.mp4.format(i):None}).run()注 FFmpegDir 需替换为环境搭建时安装位置saveVideo.pyimport 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表示第二集效果创作不易小小的支持一下吧