当前位置:首页 > 编程开发 > Python > 正文内容

Python 中常见的几种下载文件方法

Codefans11个月前 (06-10)Python526

下载比较小的文件:

# 方法一:使用urllib库
# -*- coding:utf-8 -*-
import urllib
import time
 
url = 'http://mvideo.spriteapp.cn/video/2017/0414' \
      '/697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
print "downloading with urllib"
start = time.time()
urllib.urlretrieve(url, "video.mp4")
end = time.time()
print 'Finish in :', end - start

 

# 方法二:使用urllib2库
# -*- coding:utf-8 -*-
import urllib2
import time
 
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
      '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
 
print "downloading with urllib2"
start = time.time()
data = urllib2.urlopen(url).read()
with open('video.mp4', 'wb') as video:
    video.write(data)
end = time.time()
print 'Finish in :', end - start

 

# 方法三:使用requests库
# -*- coding:utf-8 -*-
import requests
import time
 
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
      '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
 
print "downloading with requests"
start = time.time()
r = requests.get(url)
with open('video.mp4', 'wb') as video:
    video.write(r.content)
end = time.time()
print 'Finish in :', end - start

 

下载比较大的文件:

# 方法一:使用urllib2库
# -*- coding:utf-8 -*-
import urllib2
import time
 
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
      '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
 
r = urllib2.Request(url)
u = urllib2.urlopen(r)
start = time.time()
with open('video.mp4', 'w') as f:
    while True:
        tmp = u.read(1024)
        if not tmp:
            break
        f.write(tmp)
end = time.time()
print 'Finish in :', end - start

 

# 方法二:使用requests库
# -*- coding:utf-8 -*-
import requests
import time
url = 'http://mvideo.spriteapp.cn/video/2017/0414/' \
      '697de826-20b5-11e7-9c72-1866daeb0df1cut_wpcco.mp4'
# 当把get函数的stream参数设置成False时,
# 它会立即开始下载文件并放到内存中,如果文件过大,有可能导致内存不足。
 
# 当把get函数的stream参数设置成True时,它不会立即开始下载,
# 使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载
r = requests.get(url, stream=True)
f = open("file_path", "wb")
start = time.time()
for chunk in r.iter_content(chunk_size=1024):
    if chunk:
        f.write(chunk)
        f.flush()
# iter_content:一块一块的遍历要下载的内容
# iter_lines:一行一行的遍历要下载的内容
# 这两个函数下载大文件可以防止占用过多的内存,因为每次只下载小部分数据
end = time.time()
print 'Finish in :', end - start


扫描二维码推送至手机访问。

版权声明:本文由图慧网发布,如需转载请注明出处。

本文链接:http://www.tuh8.com/?id=71

分享给朋友:
返回列表

上一篇:最新版selenium中find_element使用方法

没有最新的文章了...

“Python 中常见的几种下载文件方法” 的相关文章

python中remove函数的踩坑记录

这篇文章主要给大家介绍了关于python中remove函数的踩坑记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧摘要:在python的使用过程中,难免会遇到要移除列表中对象的要求。这时可以使用remove函数。对于python...

pandas 利用to_excel一次生成多个sheet到一个文件中

在 Pandas 的 to_excel 方法中,可以通过传递参数 sheet_name 来指定生成的 Excel 中的工作表的名称。如果需要生成多个工作表,可以在 sheet_name 中传递一个列表,其中的每个元素即为每个工作表的名称。例如,以下代码生成了一个包含两个工作表的 Excel 文件:i...

Python中 pandas 数据处理常用函数与方法的详细介绍

数据读取和写入pandas.read_csv(filepath_or_buffer, sep=',', header='infer', names=None): 从 csv 文件中读取数据,返回一个 DataFrame 对象。其中 filepath_or_buffer...

Python requests库中几个常用方法的使用示例

GET请求GET请求是requests库中最常用的请求方法,它用于获取指定URL的资源。以下是一个GET请求的示例:import requests url = 'https://www.baidu.com' response = ...

python BeautifulSoup4(bs4)使用教程

Python 中的 BeautifulSoup4(通常简称为 bs4)是一个流行的 HTML 解析器,是从 HTML 或 XML 文件中提取数据(或屏蔽 HTML/XML 标记)的一种库。在本文中,我将介绍如何安装、导入和使用 bs4 库。安装要安装 bs4,可以使用 pip 命令:pip ...

Python pandas库159个常用方法使用说明

Pandas库专为数据分析而设计,它是使Python成为强大而高效的数据分析环境的重要因素。一、Pandas数据结构1、import pandas as pdimport numpy as npimport matplotlib.pyplot as plt2、S1=pd.Series([‘a’,’b...