今天想要下载一个网站的日志文件,但是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(); #关闭文件
这样,就可以将文件下载下来了(不过我实测经常会下到一半失败。。。)
FROM :rickyhao.com | rickyhao.com
昨天我们实现了Python的简易文件下载,但是那样速度太慢。所以,今天我简单的实现了下Python下的多线程下载。 首先,让我们知道普通单线程的大概流程: 绘图1.jpg 然后,对于多线程下载,是这样的:绘图2.jpg 在HTTP请求头中,有一个字段叫做Ran…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论