Python - 批量下载 IIS 共享的文件
1、说明
用 IIS 以WEB形式发布了本地文件夹,提供文件下载,并设置了访问权限;默认下载需要点击一个一个的下载,web界面如下:

3、脚本
执行脚本批量下载文件,会在当前目录创建文件夹,并压缩该文件夹。
# -*- coding: utf-8 -*-
import requests
import re
import os
import zipfile
import urllib3
urllib3.disable_warnings() # 需要下载的文件信息
year =
month =
date =
folder = 'PH003' # 网站信息
username = 'admin'
password = '*********'
domain = ['https://*****.com']
files_url = 'https://*****.com/%s/%s/%s/%s/' % (year, month, date, folder)
dir_name = '%s_%s_%s_%s' % (year, month, date, folder)
zip_dir_name = '%s.zip' % dir_name def create_folder(path):
isExists = os.path.exists(path)
if not isExists:
os.makedirs(path)
print("目录" + path + "创建成功")
return True
else:
print("目录" + path + "已存在")
return False def get_html():
# 获取网页源代码
r = requests.get(files_url, auth=(username, password), verify=False)
html = r.content.decode('utf-8')
# print(html) # 获取“url+文件名称”块
url_content = re.compile(r'<A HREF=".*?">.*?</A>', re.S)
url_contents = re.findall(url_content, html)
return url_contents def get_name_url():
# 过滤出文件url、文件名称
name_url = []
url_contents = get_html()
for i in url_contents:
# 过滤
url_reg = re.compile(r'<A HREF="(.*?)">')
name_reg = re.compile(r'<A HREF=".*?">(.*?)</A>')
url_items = re.findall(url_reg, i)
name_items = re.findall(name_reg, i) # 拼接下载地址
url = domain + url_items
url_items = ["".join(url)]
# print(files_url_items)
# print(name_items) for k, v in zip(name_items, url_items):
if k == "[转到父目录]":
continue
else:
name_url.append([k, v])
return name_url def download_files(dir_name):
# 下载文件
create_folder(dir_name)
name_url = get_name_url()
for i in name_url:
# i[0]:name, i[1]:url
r = requests.get(i[1], auth=(username, password), verify=False)
with open("%s\\%s" % (dir_name, i[0]), "wb") as code:
code.write(r.content)
print("正在下载:" + i[0])
print("下载完成,开始压缩") def zip_files(dir_name, zip_dir_name):
# 压缩文件夹
z = zipfile.ZipFile(zip_dir_name, 'w', zipfile.ZIP_DEFLATED)
for dirpath, dirnames, filenames in os.walk(dir_name):
fpath = dirpath.replace(dir_name, '')
fpath = fpath and fpath + os.sep or ''
for filename in filenames:
z.write(os.path.join(dirpath, filename), fpath + filename)
print('压缩成功')
z.close() def main():
download_files(dir_name)
zip_files(dir_name, zip_dir_name) main()
执行结果如下:

Python - 批量下载 IIS 共享的文件的更多相关文章
- 用Python批量下载DACC的MODIS数据
本人初次尝试用Python批量下载DACC的MODIS数据,记下步骤,提醒自己,数据还在下载,成功是否未知,等待结果中...... 若有大佬发现步骤有不对之处,望指出,不胜感激. 1.下载Python ...
- Python批量复制和重命名文件
Python批量复制和重命名文件 示例代码 #! /usr/bin/env python # coding=utf-8 import os import shutil import time impo ...
- Python批量修改Excel中的文件内容
import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None): return os.path.join ...
- 用python批量下载贴吧图片 附源代码
环境:windows 7 64位:python2.7:IDE pycharm2016.1 功能: 批量下载百度贴吧某吧某页的所有帖子中的所有图片 使用方法: 1.安装python2.7,安装re模块, ...
- Python 批量下载BiliBili视频 打包成软件
文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...
- 使用Python批量下载Plus上的Podcast
Plus是一个介绍数学之美与实际应用的网络杂志,其中包含了数学知识.轶闻趣事.历史典故等许多精彩的内容.该杂志恰好有一个Podcast栏目,提供了不少采访与讲座的mp3音频.于是, 我使用Python ...
- python批量下载微信好友头像,微信头像批量下载
#!/usr/bin/python #coding=utf8 # 自行下载微信模块 itchat 小和QQ496631085 import itchat,os itchat.auto_login() ...
- java批量下载,将多文件打包成zip格式下载
现在的需求的: 根据产品族.产品类型,下载该产品族.产品类型下面的pic包: pic包是zip压缩文件: t_product表: 这些包以blob形式存在另一张表中: t_imagefile表: 现在 ...
- 用python批量下载图片
一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么 ...
随机推荐
- ASP.NET MVC过滤器学习笔记
1.过滤器的两个特征 1.他是一种特性,可以引用到控制器类和Action方法上.比如下图 这里控制器类和action方法都引用了过滤器,这个过滤器是用来做授权的 2.特征继承自FilterAttrib ...
- 基于OpenCV.Net连通域分析进行文本块分割
上一次通过投影的方式进行了文本块分割,(见 https://www.cnblogs.com/BoyTNT/p/11812323.html )但这种方法有很大的局限性,要求分行清晰.不能有字符跨多行.不 ...
- 面试官都叫好的Synchronized底层实现,这工资开多少一个月?
本文为死磕Synchronized底层实现第三篇文章,内容为重量级锁实现. 本系列文章将对HotSpot的synchronized锁实现进行全面分析,内容包括偏向锁.轻量级锁.重量级锁的加锁.解锁.锁 ...
- NopCommerce源代码分析之用户验证和权限管理
目录 1. 介绍 2. UML 2.1 实体类UML图 2.2 业务相关UML图 3. 核心代码分析 3.1 实体类源代码 3.2 业务相关源代码 3.3 相关控制器源代码 3.4 ...
- Eureka源码解析系列文章汇总
先看一张图 0 这个图是Eureka官方提供的架构图,整张图基本上把整个Eureka的核心功能给列出来了,当你要阅读Eureka的源码时可以参考着这个图和下方这些文章 EurekaServer Eur ...
- windows下编写dll
dll的优点 简单的说,dll有以下几个优点: 1) 节省内存.同一个软件模块,若是以源代码的形式重用,则会被编译到不同的可执行程序中,同时运行这些exe时这些模块的二进制码会被重复加载到内存中.如果 ...
- SVG撑满页面
当viewBox属性固定,默认修改svg标签的宽高,svg都会按比例缩放 我们现在不想按比例缩放,需要svg撑满整个画面 这里只需为svg标签添加一个关键属性:preserveAspectRatio ...
- ThreadPoolTaskExecutor学习
1. ThreadPoolTaskExecutor学习 1.1. 前言 我们知道一般创建线程池,我们都用ThreadPoolExecutor,但实际上Spring它也对该线程池做了一层封装,他就是Th ...
- openssl生成随机数
#include <stdio.h> #include <openssl/bn.h> int main() { BIGNUM *bn; bn = BN_new(); //生成一 ...
- iOS - 常用宏定义和PCH文件知识点整理
(一)PCH文件操作步骤演示: 第一步:图文所示: 第二步:图文所示: (二)常用宏定义整理: (1)常用Log日志宏(输出日志详细可定位某个类.某个函数.某一行) //=============== ...