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


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

    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")
    '''
    
    这个人虽然不太勤快,但是还是留下了一些什么......
  • 相关阅读:
    UINavigationController详细(转)
    IOS控件大全及控件大小
    IOS的各种控件(转载,防止遗忘)
    算法导论学习-heapsort
    POJ1502: MPI Maelstrom
    POJ1163 The Triangle: 倒三角形问题
    算法导论学习-Dynamic Programming
    POJ2299: Ultra-QuickSort-合并排序解决逆序数问题
    POJ3750: 小孩报数问题+一道经典约瑟夫问题(猴子选大王)
    用头插法实现单链表整表创建
  • 原文地址:https://www.cnblogs.com/lwcccyingziji/p/15133176.html
Copyright © 2020-2023  润新知