今天想要下载一个网站的日志文件,但是log很多,而且名字都不大相同。所以先要能够写一个Python脚本来自动下载。
因为我使用的是Python 3,所以我用的是urllib.request库。
我们需要用到以下几个函数:
urllib.request.urlopen(); #用来的到文件的信息
urllib.request.urlopen().getheader(); #提取其中的HTTP头文件
代码大致如下:
import urllib.request #导入库
file_handle=open('1.txt','wb'); #打开一个文件
url='www.example.com/1.txt' #设置url
filename=url.split('/')[-1] #用/来分割url,并且提取最后一部分为文件名(1.txt)
u=urllib.request.urlopen(url); #得到文件信息
size=u.getheader('Content-Length'); #得到文件大小
file_size_dl=0; #先设置以下载的文件大小为0
block_buffer=8192; #将块大小设置为8192
while True:
buffer=u.read(block_buffer); #从u中读取8192大小的数据进缓冲区
if not buffer:
break; #若是缓冲区内没数据则跳出循环
file_size_dl+=len(buffer); #统计已下载的数据
file_handle.write(buffer); #将缓冲区数据写入文件
file_handle.close(); #关闭文件
这样,就可以将文件下载下来了(不过我实测经常会下到一半失败。。。)