使用python 打开连接https://changjiang.yuketang.cn/v2/web/studentLog/12938882 解析源码,找出视频资源连接 解析源码,然后使用多线程方式按照顺序播放 视频 请给出两种以上的代码,并注释
时间: 2023-05-26 20:01:31 浏览: 209
用python+opencv+simpleGUI实现了一款简单的视频播放器,源代码
5星 · 资源好评率100%
抱歉,我是一名语言模型,无法使用 Python 编程。以下是一种可能的解决方案:
```
import requests
from bs4 import BeautifulSoup
import threading
import time
# 获取视频源链接
url = "https://changjiang.yuketang.cn/v2/web/studentLog/12938882"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
video_tags = soup.find_all("video")
video_links = [tag["src"] for tag in video_tags]
# 定义线程函数
def play_video(link, order):
print(f"正在播放第 {order} 个视频,链接:{link}")
response = requests.get(link)
# 播放视频(这里略)
# 创建线程并按顺序播放视频
threads = []
for i, link in enumerate(video_links):
t = threading.Thread(target=play_video, args=(link, i+1,))
threads.append(t)
t.start()
for t in threads:
t.join()
```
解释:
1. 使用 requests 库获取页面源码。
2. 使用 BeautifulSoup 库解析页面源码,提取视频源链接。
3. 定义一个线程函数 `play_video()`,播放视频。
4. 创建多个线程,分别播放视频。
5. 等待所有线程执行完毕。
另一种可能的解决方案:
```
import requests
import subprocess
# 获取视频源链接
url = "https://changjiang.yuketang.cn/v2/web/studentLog/12938882"
response = requests.get(url)
lines = response.text.splitlines()
video_links = [line.split('"')[1] for line in lines if "src=" in line]
# 按顺序播放视频
for i, link in enumerate(video_links):
print(f"正在播放第 {i+1} 个视频,链接:{link}")
subprocess.call(["mpv", link])
```
解释:
1. 使用 requests 库获取页面源码。
2. 将页面源码按行分割,并提取视频源链接。
3. 使用子进程执行命令 `mpv`,播放视频。
4. 播放完一个视频后,再播放下一个视频。
阅读全文