一个下载的小脚本实例,不完善,也不是爬虫,自己留个纪念

一个下载的小脚本实例,不完善,也不是爬虫,自己留个纪念

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")
'''
这个人虽然不太勤快,但是还是留下了一些什么......
原文地址:https://www.cnblogs.com/lwcccyingziji/p/15133176.html