You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
3 weeks ago
|
import requests
|
||
|
import os
|
||
|
from pathlib import Path
|
||
|
def get_vnames(url):
|
||
|
try:
|
||
|
response = requests.get(url)
|
||
|
if response.status_code == 200:
|
||
|
return response.json()
|
||
|
else:
|
||
|
return f"请求失败,状态码:{response.status_code}"
|
||
|
except requests.exceptions.RequestExecption as e:
|
||
|
return f"请求发生错误:{e}"
|
||
|
|
||
|
def get_videos(file_path, local_path):
|
||
|
p = Path(file_path)
|
||
|
try:
|
||
|
response = requests.get(file_path, stream=True)
|
||
|
if response.status_code == 200:
|
||
|
with open(local_path, "wb") as f:
|
||
|
for chunk in response.iter_content(chunk_size=1024):
|
||
|
if chunk:
|
||
|
f.write(chunk)
|
||
|
print(f"{p.name}下载并保存成功")
|
||
|
else:
|
||
|
print(f"请求失败,状态码为:{response.status_code}")
|
||
|
except requests.exceptions.RequestException as e:
|
||
|
print(f"请求发生错误:{e}")
|
||
|
if __name__ == "__main__":
|
||
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||
|
local_dir = os.path.join(current_dir, "downloads")
|
||
|
url = "http://47.120.70.16:8080/"
|
||
|
names_url = url + "show/videos_name"
|
||
|
msg = get_vnames(names_url)
|
||
|
video_names = msg["file_names"]
|
||
|
for name in video_names:
|
||
|
local_path = os.path.join(local_dir, name)
|
||
|
file_url = url + os.path.join("download", name)
|
||
|
get_videos(file_url, local_path)
|