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

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

Codefans2年前 (2023-06-10)Python981

下载比较小的文件:

# 方法一:使用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中 pandas 数据处理常用函数与方法的详细介绍

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

python requests库使用详细教程

Python 中的 requests 库是一个简单易用的 HTTP 请求库,支持多种请求方法、多种参数设置、并且使用广泛。本文将详细介绍如何使用 requests 库发送 HTTP 请求。安装使用 pip 命令进行安装:pip install requests导入在编写 Pyth...

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...

Python 和 ddddocr 识别图片中文字教程

1.安装 ddddocr在终端执行以下命令安装 ddddocr:pip install ddddocr加载并识别图片使用 ddddocr 可以非常方便地加载并识别图片中的文字。下面是代码示例:import requests from io impor...

最新版selenium中find_element使用方法

find_element(By)driver.find_element(By.ID, 'element_id')driver.find_element(By.NAME, 'element_name')driver.find_element(By.CLASS_NAME,...