Python 下载图片(文件)的方法

import requests
import os
#创建目录文件夹
os.makedirs('./image/', exist_ok=True)
# 构造请求头
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
#发送get请求图片url
r=requests.get('https://img-blog.csdnimg.cn/20200922093507346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3Njk0ODM1,size_16,color_FFFFFF,t_70#pic_center',headers=headers)
# wb 以二进制打开文件并写入,文件名不存在会创建
with open('./image/1.png','wb') as f:
     f.write(r.content) #写入二进制内容
import requests
import urllib.request
import os
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 创建目录文件夹
os.makedirs('./image/', exist_ok=True)
# 构造请求头
headers={
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36'
}
# 发送get请求图片url
url='https://img-blog.csdnimg.cn/20200922093507346.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI3Njk0ODM1,size_16,color_FFFFFF,t_70#pic_center'

# 直接将对应信息写入文件。格式:urllib.request.urlretrieve(url,filename=本地文件地址)
urllib.request.urlretrieve(url,filename=r"./image/01.png")

# urlretrieve执行的过程中,会产生缓存,清除缓存
urllib.request.urlcleanup()

print(1)

urllib.request.urlretrieve(url, filename=None, reporthook=None, data=None)

函数说明

将URL表示的网络对象复制到本地文件。如果URL指向本地文件,则对象将不会被复制,除非提供文件名。返回一个元组()(filename,header),其中filename是可以找到对象的本地文件名,header是urlopen()返回的对象的info()方法(用于远程对象)。
第二个参数(如果存在)指定要复制到的文件位置(如果没有,该位置将是一个生成名称的tempfile)。第三个参数,如果存在,则是一个回调函数,它将在建立网络连接时调用一次,并且在此后每个块读取后调用一次。这个回调函数将传递三个参数;到目前为止传输的块计数,以字节为单位的块大小,以及文件的总大小。第三个参数可能是-1,在旧的FTP服务器上,它不返回文件大小以响应检索请求。

参数说明

url:外部或者本地url
filename:指定了保存到本地的路径(如果未指定该参数,urllib会生成一个临时文件来保存数据);

reporthook:是一个回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调。我们可以利用这个回调函数来显示当前的下载进度。

data:指post到服务器的数据。该方法返回一个包含两个元素的元组(filename, headers),filename表示保存到本地的路径,header表示服务器的响应头。

参考:
1.Python 下载图片的三种方法
2.Python下载URL图片
3.Urllib库与URLError异常处理

你可能感兴趣的:(Python文件操作,Python爬虫)