一个下载的小脚本实例,不完善,也不是爬虫,自己留个纪念
import os
import shutil
import requests
DOWNLOAD_IM = set() # 已下载图片的key
DOWNLOAD_VI = set() # 已下载抖音的key
DOWNLOAD_NBA = set() # 已下载nba的key
BASE_PATH = os.getcwd()
FILE_PATH = os.path.join(BASE_PATH, "download")
if not os.path.exists(FILE_PATH):
os.makedirs(FILE_PATH)
def downlond_file(name):
file_path = os.path.join(FILE_PATH, name)
if not os.path.exists(file_path):
os.makedirs(file_path)
return file_path
def zone(diff):
while True:
user_in = input("请输入要下载的资源编号(Q/q):").strip()
if user_in.upper() == "Q":
homepage()
elif not user_in.isdecimal():
print("输入错误,请重新输入")
elif user_in not in diff:
print("没有这个资源,请重新输入")
else:
return user_in
def image():
while True:
name = "image"
file_path = downlond_file(name)
image_dict = {
"1": ("吉他男神",
"https://hbimg.huabanimg.com/51d46dc32abe7ac7f83b94c67bb88cacc46869954f478-aP4Q3V"),
"2": ("漫画美女",
"https://hbimg.huabanimg.com/703fdb063bdc37b11033ef794f9b3a7adfa01fd21a6d1-wTFbnO"),
"3": ("游戏地图",
"https://hbimg.huabanimg.com/b438d8c61ed2abf50ca94e00f257ca7a223e3b364b471-xrzoQd"),
"4": ("alex媳妇",
"https://hbimg.huabanimg.com/4edba1ed6a71797f52355aa1de5af961b85bf824cb71-px1nZz"),
}
long = {str(i + 1) for i in range(len(image_dict))}
# len = [k for k in image_dict.keys() ]
diff = long - DOWNLOAD_IM
if not diff:
print("已经没有可以下载的了")
homepage()
for k in sorted(diff):
print("输入{},下载{}. {}".format(k, k, image_dict.get(k)[0]))
user_in = zone(diff)
image_name = image_dict.get(user_in)[0]
url = image_dict.get(user_in)[1]
res = requests.get(
url=url,
headers={
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
}
)
with open(file_path + r"{}.png".format(image_name), mode="wb") as f:
f.write(res.content)
DOWNLOAD_IM.add(user_in)
def video():
while True:
name = "video"
file_path = downlond_file(name)
# 可供用户下载的短视频如下
video_dict = {
"1": {"title": "东北F4模仿秀",
'url': "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300f570000bvbmace0gvch7lo53oog"},
"2": {"title": "卡特扣篮",
'url': "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f3e0000bv52fpn5t6p007e34q1g"},
"3": {"title": "罗斯mvp",
'url': "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0200f240000buuer5aa4tij4gv6ajqg"},
}
long = {str(i + 1) for i in range(len(video_dict))}
# len = [k for k in image_dict.keys() ]
diff = long - DOWNLOAD_VI
if not diff:
print("已经没有可以下载的了")
homepage()
for k in sorted(diff):
print("输入{},下载{}. {}".format(k, k, video_dict.get(k).get("title")))
user_in = zone(diff)
video_name = video_dict.get(user_in).get("title")
url = video_dict.get(user_in).get("url")
res = requests.get(
url=url,
headers={
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 FS"
}
)
with open(file_path + r"{}.mp4".format(video_name), mode="wb") as f:
f.write(res.content)
DOWNLOAD_VI.add(user_in)
def nba():
while True:
name = "nba"
file_path = downlond_file(name)
# 可供用户下载的NBA视频如下
nba_dict = {
"1": {"title": "威少奇才首秀三双",
"url": "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300fc20000bvi413nedtlt5abaa8tg&ratio=720p&line=0"},
"2": {"title": "塔图姆三分准绝杀",
"url": "https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0d00fb60000bvi0ba63vni5gqts0uag&ratio=720p&line=0"}
}
long = {str(i + 1) for i in range(len(nba_dict))}
# len = [k for k in image_dict.keys() ]
diff = long - DOWNLOAD_NBA
if not diff:
print("已经没有可以下载的了")
homepage()
for k in sorted(diff):
print("输入{},下载{}. {}".format(k, k, nba_dict.get(k).get("title")))
user_in = zone(diff)
nba_name = nba_dict.get(user_in).get("title")
url = nba_dict.get(user_in).get("url")
res = requests.get(
url=url,
headers={
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 FS"
}
)
with open(file_path + r"{}.mp4".format(nba_name), mode="wb") as f:
f.write(res.content)
DOWNLOAD_VI.add(user_in)
def homepage():
san_dict = {
"1": [image, "花瓣网图片专区"],
"2": [video, "抖音短视频专区"],
"3": [nba, "NBA锦集 专区"]
}
long = [k for k in san_dict.keys()]
print("欢迎进入XXX资源下载器".center(20, "-"))
for k, v in san_dict.items():
print("输入{},进入{}. {}".format(k, k, v[1]))
# print("输入1,进入 1. 花瓣网图片专区")
# print("输入2,进入 2. 抖音短视频专区")
# print("输入3,进入 3. NBA锦集 专区")
while True:
user_in = input("请输入专区编号(Q/q):").strip()
if user_in.upper() == "Q":
exit("已退出")
elif not user_in.isdecimal():
print("输入错误,请重新输入")
elif user_in not in long:
print("没有这个专区,请重新输入")
else:
return san_dict.get(user_in)[0]()
# 程序入口
homepage()
# 调试,压缩文件不用管
# shutil.rmtree(FILE_PATH)
'''
if not os.path.exists(FILE_PATH+r"w"):
os.makedirs(FILE_PATH+r"w")
print(BASE_PATH)
shutil.copy(BASE_PATH+r"day11.py",FILE_PATH+r"w")
shutil.make_archive(base_name=FILE_PATH+r"w",format="zip",root_dir=FILE_PATH+r"w")
'''