我是靠谱客的博主 丰富蜜粉,这篇文章主要介绍python 爬取视频,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# coding=utf-8 from selenium import webdriver import requests,time,datetime,os,re ########################################################### 优秀电商开源系统地址提供学习: http://github.crmeb.net/u/fei ########################################################### def get_m3u8_url(videoName): driver = webdriver.Chrome() driver.maximize_window() driver.get("http://ys6080.com") time.sleep(2) driver.find_element_by_xpath('(//input[@id="wd"])[1]').send_keys(videoName) driver.find_element_by_xpath('(//input[@class="imgbt"])[1]').click() countNumber = driver.find_element_by_xpath('//div[@class="main"]//strong[2]').text print("搜索结果 {} 个资源".format(countNumber)) if int(countNumber) == 0: print("很遗憾没有找到资源!") elif int(countNumber) == 1: driver.find_element_by_xpath('(//p[@class="name"])[1]').click() elif int(countNumber) > 1: for i in range(int(countNumber)): xpathStr = '//div[@class="main"]//ul/li[{}]//span[@class="lzbz"]'.format(str(i+1)) videoInfo = driver.find_element_by_xpath(xpathStr).text print(str(i+1)+"、"+videoInfo) while True: number = input("请输入所要下载的视频序号: ") if int(number) > int(countNumber) or int(number) < 1: print("序号不存在请重新输入!!!") else: driver.find_element_by_xpath('(//p[@class="name"])['+str(number)+']').click() break # 获取级数 parentPath = driver.find_element_by_xpath('//div[@id="vlink_1"]/ul') allElList = parentPath.find_elements_by_tag_name("li") countList = len(allElList) print("一共有 {} 集视频,输入序号下载,不输入下载全部影集 ".format(str(countList))) # 打印每集名称 for el in range(countList): everyXpath = '//div[@id="vlink_1"]/ul/li[{}]/a'.format(str(el+1)) everyName = driver.find_element_by_xpath(everyXpath).text print(str(el+1)+"、"+everyName) numberJi = input("请输入所要下载的续集序号: ") # 视频下载初始链接 iframeXpthList = [] if numberJi != "": driver.find_element_by_xpath('//div[@id="vlink_1"]/ul/li['+numberJi+']/a').click() iframeXpthList.append(driver.find_element_by_xpath('//td[@id="playleft"]/iframe').get_attribute("src")) else: # 获取所有链接 for ji in range(countList): time.sleep(2) driver.find_element_by_xpath('//div[@id="vlink_1"]/ul/li['+str(ji+1)+']/a').click() iframeXpthList.append(driver.find_element_by_xpath('//td[@id="playleft"]/iframe').get_attribute("src")) driver.back() time.sleep(5) driver.quit() # 工共参数 globalUrl = "https://v4.szjal.cn" # 获取ts视频流地址所有选择集数 m3u8UrlList = [] for m3u8Url in iframeXpthList: regex = re.compile(r"url=(.*?).m3u8") resp = requests.get(url=regex.findall(m3u8Url)[0]+".m3u8").text # 获取信息分割后索引为2的为ts视频流获取地址 m3u8UrlList.append(resp.split("n")[2]) # 所有视频的ts集合的集合 [[],[]] allTsUrlList = [] # 获取每一集的视频流集合 tsUrlList = [] for ts in m3u8UrlList: tsUrlRespList = requests.get(globalUrl+ts).text.split("n") for tsUrl in tsUrlRespList: if ".ts" in tsUrl: tsUrlList.append(globalUrl+tsUrl) allTsUrlList.append(tsUrlList) # 请求视频片段链接下载视频 filePath = "D:\python脚本\" if not os.path.exists(filePath): os.makedirs(filePath) for everyVideoTsUrlList in allTsUrlList: print("正在下载, 请稍后...") videoName = datetime.datetime.now().strftime("%y%m%d%H%M%S")+".mp4" for everyDownLoadUrl in everyVideoTsUrlList: responseContent = requests.get(everyDownLoadUrl) with open(filePath+videoName,"ab") as f: f.write(responseContent.content) print("视频下载完成,保存地址:{}".format(filePath)) get_m3u8_url(videoName="大仙尊")

 

最后

以上就是丰富蜜粉最近收集整理的关于python 爬取视频的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部