一、引言

        UU们好!在这里我分享一下前几天编写的一个小软件,其功能是可以根据视频、图片或者音频的URL进行本地下载。

        本人目前的学习情况是正在学习urllib.request库,为了编写这款小软件,同时学习了Python用于图形化编程的tkinter库和软件打包用的pyinstaller库,废话不多说,下面先进行功能展示,再进行具体实操的讲解!

二、软件展示

        1. 图标

        这里是通过pyinstaller在终端进行打包时设置icon值完成的 

        2. 界面

        这里就有点简陋啦哈哈

        在文件类型这里我们可以选择audio(音频,这里是默认选中)、video(视频)或image(图片) 

        3. 具体功能展示

        emmm,这个感觉有点不方便啦哈哈哈哈哈,如果在这里展示爬内容也有点不合适,我们这里就跳过吧~(可怜ver.)

三、代码

# @File : 下载助手
# @Project : python爬虫
import tkinter as tk
from tkinter import messagebox
import urllib.request
import os

class SpiderApp:
    def __init__(self, root):
        self.root = root
        self.root.title("下载助手")
        self.root.geometry("400x300")

        # 设置保存路径
        self.given_path = r'C:\Users\asus\Desktop'

        # 创建输入框和标签
        tk.Label(self.root, text="请输入URL:").pack(pady=5)
        self.url_entry = tk.Entry(self.root, width=50)
        self.url_entry.pack(pady=5)

        tk.Label(self.root, text="请输入文件名:").pack(pady=5)
        self.name_entry = tk.Entry(self.root, width=50)
        self.name_entry.pack(pady=5)

        # 创建下拉菜单
        tk.Label(self.root, text="请选择文件类型:").pack(pady=5)
        self.file_type = tk.StringVar()
        self.file_type.set("audio")  # 默认值
        tk.OptionMenu(self.root, self.file_type, "audio", "video", "image").pack(pady=5)

        # 创建下载按钮
        tk.Button(self.root, text="下载文件", command=self.download_file).pack(pady=20)
    def download_file(self):
        url = self.url_entry.get()
        name = self.name_entry.get()
        file_type = self.file_type.get()

        # 根据选择的文件类型添加扩展名
        if file_type == "audio":
            name += ".mp3"
        elif file_type == "video":
            name += ".mp4"
        elif file_type == "image":
            name += ".jpg"
        # 检查路径是否存在,如果不存在则创建
        if not os.path.exists(self.given_path):
            os.makedirs(self.given_path)
        try:
            # 下载文件到指定路径
            file_path = os.path.join(self.given_path, name)
            urllib.request.urlretrieve(url=url, filename=file_path)
            messagebox.showinfo("成功", f"文件已保存到路径: {file_path}")
        except Exception as e:
            messagebox.showerror("错误", f"下载失败: {e}")

if __name__ == "__main__":
    root = tk.Tk()
    app = SpiderApp(root)
    root.mainloop()

        代码具体讲解在这里就略过,我们主要是讲思路:

        爬虫部分代码是我在网课中所学知识的浮现 ,这里主要是urllib.reuqest库、os库的运用,在完成后是基于AI来进行性能优化和调整的;

        此外GUI编程是基于tkinter库完成的,我只设计了根界面和组件,后续美工排版是通过AI辅助完成的;

        最后是软件打包,在这里我是运用pyinstaller库完成,这里有个讲的点就是在软件打包时,如果不想弹出控制台属性值要设置 -w;如果想给软件设置图标,要设置icon的值;如果打包想东西少一点,就要设置 --onefile。

        具体AI怎样辅助的,则是根据读者自行需求去询问AI;tkinter库和pyinstaller库的一些内容B站上也有学习视频,读者可以自行搜索。这里需要注意的是tkinter库是python自带的,不用额外下载,但pyinstaller库是需要自行下载的,我是用的pip指令,也没有用镜像源网站

pip install pyinstaller

        这里不用镜像源应该也行,反正我下载的挺快的,在软件的一些基本设计、美工调整好后,我们就可以进行软件的打包了

pyinstaller -w --onefile -icon= '图片的地址'
'''
注意,这行代码是在终端运行的,
-w    是控制不弹出控制台,
--onefile    是设置打包文件少一点
-icon = 设置图片地址    这里是软件图标
最后再输入./并按下tab键,直到按出你想打包的软件为止
最后敲击回车
'''

        注意python库图片一定要是.ico格式的,有些网站可以转图片格式为.ico的,这里我附上我用的:在线生成透明ICO图标——ICO图标制作

四、结语

        明天开始继续学习之旅吧,最近有点不自律,更新的有点少,希望自己能更加勤奋!

        如果内容有误请及时联系我进行修改。如果您觉得内容对您有所帮助,可以点赞收藏支持一下,您的鼓励是我写blog下去的最大动力!同时我的博客内容均为学习日常打卡,是分享我每天的学习生活的,而并非任何科普类博客,望周知。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐