- 需求说明
- 逻辑流程
- 实现代码
刚好可以拿Python练手 一切以实现功能为首要目标,请忽略本菜鸡( 第一次用python写脚本)的代码本身问题,感兴趣的可以参考,如果满足你的实际需求,请拿走~浪浪浪浪浪浪浪浪浪浪 需求说明
逻辑流程具体要求:
根据数据库中资源存储地址,批量下载相应资源
实现代码1、 连接数据库(PyMySQL),获取需要处理的数据
2、创建特定文件目录(os)
3、下载资源文件(wget, sys)
4、下载资源图片(urllib)
5、关于上述使用的包,直接安装即可。别问为什么下载资源和图片要使用两个不同的包(因为本人在使用urllib下载文件的时候报错了),另外sys只是为了在下载文件的时候,可以看到下载进度条而已。
import pymysql import os import urllib import wget import sys # 连接数据库 获取对应数据 def getDb(): db = pymysql.connect(host='localhost', user='***', password='***', database='****') cursor = db.cursor() sql = "select filed1, filed2, filed3 from table_name" cursor.execute(sql) result = cursor.fetchall() for row in result: title = row[0] download = row[1] image = row[2] path = makeDir("D:\resources\" + title + "\") getZip(download, path) getImage(image, path) db.close() # 创建文件夹 def makeDir(path): path = path.strip() path = path.rstrip("\") isExists = os.path.exists(path) if not isExists: # 如果不存在则创建目录 # 创建目录 *** 作函数 os.makedirs(path) return path else: return path # 下载资源压缩包 def getZip(url, path): filename = getFileName(url) wget.download(url, path + '\' + filename, bar=bar_progress) print(filename + "文件下载完成") # 下载进度条 def bar_progress(current, total, width=100): progress_message = "Downloading: %d%% [%d / %d] bytes" % (current / total * 100, current, total) sys.stdout.write("r" + progress_message) sys.stdout.flush() # 下载资源图片 def getImage(url, path): filename = getFileName(url) urllib.request.urlretrieve(url, filename=path + '\' + filename) print(filename + "图片下载完成") # 获取资源名称 def getFileName(url): return url.split('/')[-1] if __name__ == '__main__': getDb()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)