新学的python,兴奋不已,于是网上各种资源各种爬,发现对于同样文件下载,各个下载方法的速度是不一样的(目前就知道两种方法下载#尴尬)
下面分别看下吧:
下载同样的图片,方法二的速度是方法一的二倍
方法一:刚开始爬贴吧图片学习到的
使用 urllib.request模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。
方法 |
|
说明:
-
参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
-
参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
-
参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
代码实例:
import urllib.request
url = “https://xxx.com/xxx.jpg”
urllib.request.urlretrieve(imgurl, '{0}{1}.jpg'.format(paths, x))
方法二:使用requests模块保存文件
实例代码:
import requests
import os
res = requests.get(img_url)
with open('{}{}{}.jpg'.format(end_path, '\', z), 'wb') as f:
f.write(res.content)