import re import subprocess import requests import json from pprint import pprint url = "https://www.bilibili.com/video/BV1fi4y1K7Na/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=4545a0e83c576b93b1abd0ca4e16ab4d" headers = { "referer": "https://www.bilibili.com/", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36", "cookie":"i-wanna-go-back=-1; _uuid=C106610D104-6D27-6584-66E1-FCDE2859156A75277infoc; FEED_LIVE_VERSION=V8; home_feed_column=5; buvid3=D2AE610A6-6EE7-B48E-10C51-9E8269B10C88776898infoc; header_theme_version=CLOSE; DedeUserID=1852701166; DedeUserID__ckMd5=ac9474243bdd3627; nostalgia_conf=-1; CURRENT_PID=e16a0380-e1cd-11ed-a872-2f97008834b2; rpdid=|(k|k~u|)RY)0J'uY)kkl|m)m; b_ut=5; browser_resolution=1482-792; CURRENT_BLACKGAP=0; buvid_fp_plain=undefined; CURRENT_FNVAL=4048; b_nut=1683881044; hit-new-style-dyn=1; hit-dyn-v2=1; SESSDATA=3e3851ea%2C1704423625%2C1959b%2A72SteLEoaNhz8Q6ifKiYFGRpSBjpMp2TG-QWAao2iv2yR5ci81QOokmXevCx102rLpwUc9qgAAQgA; bili_jct=2ea1af9f8ae6f19867c8cd3dc1bfd047; fingerprint=dd5c1878758a4b317420b66dad49b677; b_lsid=97F1E5C5_1894440C9F1; buvid4=9D5A25A5-A648-0805-4C59-8178C4E4362B31067-023042319-0THAXXn9jKfRyf3rDh/fQA%3D%3D; buvid_fp=dd5c1878758a4b317420b66dad49b677; sid=7i4lnopc; bp_video_offset_1852701166=817021346575810700; PVID=1" } response = requests.get(url, headers=headers) name = re.findall('"title":"(.*?)"',response.text)[0].replace(' ','') html_data = re.findall('<script>window.__playinfo__=(.*?)</script>',response.text)[0] json_data = json.loads(html_data) #print(name) # print(html_data) # print(json_data) # pprint(json_data) audio_url = json_data['data']['dash']['audio'][0]['baseUrl'] video_url = json_data['data']['dash']['video'][0]['baseUrl'] # print(audio_url) # print(video_url) audio_content = requests.get(url=audio_url,headers=headers).content video_content = requests.get(url=video_url,headers=headers).content with open("D:\\study\\B站\\素材\\" + name + ".mp3", mode="wb") as audio: audio.write(audio_content) with open("D:\\study\\B站\\素材\\" + name + ".mp4", mode="wb") as video: video.write(video_content) cmd = f'ffmpeg -i D:\\study\\B站\\素材\\{name}.mp4 -i D:\\study\\B站\\素材\\{name}.mp3 -c:a aac -strict experimental D:\\study\\B站\\视频1080P\\{name}output.mp4' subprocess.run(cmd)
时间: 2024-04-13 14:25:09 浏览: 19
这段代码看起来是从Bilibili网站上下载视频和音频,并将它们合并为一个输出视频文件。代码中使用了requests库发送HTTP请求获取网页内容,使用re库进行正则表达式匹配提取视频标题和播放信息,使用json库解析JSON数据,然后使用subprocess库调用ffmpeg命令将音频和视频合并。
你有什么问题吗?
相关问题
安装docker时报错:TriggeredBy: ● docker.socket Docs: https://docs.docker.com Process: 5111 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) Main PID: 5111 (code=exited, status=1/FAILURE) CPU: 690ms dpkg: error processing package docker-ce (--configure): installed docker-ce package post-installation script subprocess returned error exit status 1 Errors were encountered while processing: docker-ce E: Sub-process /usr/bin/dpkg returned an error code (1)
安装Docker时遇到错误,这可能是由于多种原因引起的。以下是一些常见的解决方法:
1. 检查操作系统版本:确保你的操作系统版本符合Docker的要求。不同的Docker版本对操作系统的要求有所不同,查看Docker官方文档以了解兼容性信息。
2. 清除旧的Docker安装:如果之前安装过旧版本的Docker,可能会导致冲突。可以尝试卸载旧版本的Docker并清除相关配置文件,然后重新安装最新版本。可以通过以下命令进行卸载:
```
sudo apt-get remove docker docker-engine docker.io containerd runc
```
3. 检查依赖项:确保系统中已安装了Docker所需的所有依赖项。可以运行以下命令来安装依赖项:
```
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
```
4. 使用官方脚本安装:Docker官方提供了一个安装脚本,可以自动检测并安装所需的依赖项。可以使用以下命令下载并运行官方脚本:
```
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
```
5. 查看日志文件:如果上述方法无法解决问题,可以查看Docker的日志文件以获取更多详细信息。Docker的日志文件通常位于`/var/log/docker.log`或`/var/log/syslog`。
如果问题仍然存在,请提供更多的错误信息和操作系统版本信息,以便提供更具体的帮助。
请用python将如下命令执行,curl -X POST http://10.1.84.89:9090/-/reload
要使用Python执行curl命令,你可以使用`subprocess`模块中的`run()`函数。下面是一个示例:
```python
import subprocess
command = "curl -X POST http://10.1.84.89:9090/-/reload"
result = subprocess.run(command, shell=True, capture_output=True, text=True)
if result.returncode == 0:
print("Command executed successfully")
else:
print("Command execution failed")
```
在这段代码中,我们使用`subprocess.run()`函数来执行curl命令。在`run()`函数中,我们将命令作为字符串传递给`command`变量,并设置`shell=True`以在shell中执行命令。
`capture_output=True`表示将命令的输出捕获到结果中,`text=True`表示将输出以文本形式返回。
然后,我们可以检查`result.returncode`的值来确定命令是否成功执行。如果返回值为0,则表示命令成功执行,否则表示命令执行失败。
请注意,执行curl命令需要确保你的系统中已经安装了curl工具。如果没有安装,你可以先安装curl,并确保它可用于命令行。