Python 之 文件下载

admin 2021年9月1日14:58:16评论61 views字数 883阅读2分56秒阅读模式

今天想要下载一个网站的日志文件,但是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的简易文件下载,但是那样速度太慢。所以,今天我简单的实现了下Python下的多线程下载。 首先,让我们知道普通单线程的大概流程: 绘图1.jpg 然后,对于多线程下载,是这样的:绘图2.jpg 在HTTP请求头中,有一个字段叫做Ran…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月1日14:58:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python 之 文件下载http://cn-sec.com/archives/499724.html

发表评论

匿名网友 填写信息