1、迎合批量下载网络图片的客户需求
2、初始化界面_获取数据_选择目录_下载图片(多线程下载,包括暂停、取消功能_显示图片_退出程序
下载图片流程图(多线程):
主线程:
用户点击“保存本页图片”
检查状态:如果正在下载,则警告并返回
检查目录和图片列表
禁用按钮,启用暂停和取消按钮
启动下载线程
更新状态为“开始下载”
下载线程:
创建保存目录
初始化下载计数和总数量
对于每个图片URL:
如果取消下载标志为True,跳出循环
如果暂停标志为True,则循环等待直到暂停标志为False或取消
下载图片(分块)
发送HTTP请求
打开文件写入
按块读取数据,并写入文件,同时更新已下载大小
更新总体进度(通过主线程after方法更新界面)
下载完成后,设置完成状态
一、主程序启动流程:
开始
初始化Tkinter窗口
初始化Imagedownloader类
设置窗口标题、大小
创建界面组件(输入框、按钮、树形视图等)
设置headers和cookies
绑定事件
进入主事件循环
等待用户操作
二、获取微博数据流程(以开始获取为例):
用户点击“开始获取”按钮
调用start_fetching方法
删除已有的info.csv文件
清空所有存储的微博数据
调用Get_params(1)
extract_uid从URL提取数字ID
设置params(uid, page, feature)
调用Get_response(1)
发送请求到微博API
解析返回的JSON
调用img_info方法处理数据
遍历微博列表,提取每条微博的信息(包括图片ID和最大尺寸图片URL)
将当前页微博数据添加到all_statuses_list
将数据写入ifo.csv(临时)和info.csv(去重)
调用show_info方法在树形视图显示数据
更新界面显示