工作中碰到,要下载一堆文件,同时要重命名,就想,直接把下载地址和重命名的文件名存成excel文件,让python一个个慢慢下去。
因为是自己用的,所以没写异常啥的。以下是源代码:
#################
# 在指定目录下放置指定xls文件,Sheet1 第一列为下载的链接地址,第二列为下载另存为的文件名
# excel 格式:第一行第一列 标题:要下载的网址 第一行第二列 标题:另存为文件名,从第二行开始按内容填写
# 如果要修改excel的文件名或位置,直接在代码里改
# 下载好的文件就放在运行目录中
# xlrd需要1.2.0版
# 没有考虑文件重名、文件名不规范、excel文件字段内容等,在发现有错误时,可以从打印结果知道
#################
import requests
import xlrd
#读取列表
wb=xlrd.open_workbook("E:\pythonProject\下载清单.xlsx")
sh=wb.sheet_by_name("Sheet1")
for i in range(1,sh.nrows):
#取第一列文件名
url=sh.cell(i,0).value
#下载
r=requests.get(url)
#存入第二列文件名
with open(sh.cell(i,1).value,"wb") as code:
code.write(r.content)
#显示已下载的内容
print(sh.cell(i,1).value)
#结束
print("下载结束")
修改后代码
import requests
import xlrd
try:
# 读取列表
wb = xlrd.open_workbook("E:\pythonProject\下载清单.xlsx")
sh = wb.sheet_by_name("Sheet1")
for i in range(1, sh.nrows):
# 取第一列文件名
url = sh.cell(i, 0).value
try:
# 下载
r = requests.get(url)
# 存入第二列文件名
with open(sh.cell(i, 1).value, "wb") as code:
code.write(r.content)
# 显示已下载的内容
print(sh.cell(i, 1).value)
except requests.exceptions.RequestException as e:
# 处理请求异常
print(f"下载第{i}行出现请求异常: {e}")
except IOError as e:
# 处理文件IO异常
print(f"保存第{i}行文件时出现IO异常: {e}")
except Exception as e:
# 处理其他异常
print(f"下载第{i}行出现未知异常: {e}")
# 结束
print("下载结束")
except FileNotFoundError:
print("找不到指定的Excel文件")
except xlrd.XLRDError:
print("Excel文件读取错误")
except Exception as e:
print(f"发生未知错误: {e}")
下载失败跳过
import requestsimport xlrdtry: # 读取列表 wb = xlrd.open_workbook("E:\pythonProject\下载清单.xlsx") sh = wb.sheet_by_name("Sheet1") for i in range(1, sh.nrows): # 取第一列文件名 url = sh.cell(i, 0).value try: # 下载 r = requests.get(url) # 存入第二列文件名 with open(sh.cell(i, 1).value, "wb") as code: code.write(r.content) # 显示已下载的内容 print(sh.cell(i, 1).value) except requests.exceptions.RequestException as e: # 处理请求异常 print(f"下载第{i}行出现请求异常: {e}") continue except IOError as e: # 处理文件IO异常 print(f"保存第{i}行文件时出现IO异常: {e}") continue except Exception as e: # 处理其他异常 print(f"下载第{i}行出现未知异常: {e}") continue # 结束 print("下载结束")except FileNotFoundError: print("找不到指定的Excel文件")except xlrd.XLRDError: print("Excel文件读取错误")except Exception as e: print(f"发生未知错误: {e}")
Comments NOTHING