保存图片
urllib
用法:urlretrieve(url, filename=None, reporthook=None, data=None)
>
参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据)
参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度
参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头
1 | # -*- coding: utf-8 -*- |
PIL+requests
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用
requests是python实现的最简单易用的HTTP库,建议爬虫使用requests库。默认安装好python之后,是没有安装requests模块的,需要单独通过pip安装
BytesIO是用来操作二进制数据的,因为图片是二进制数据,和它相对的自然是StringIO,这是用来存str的。他们的区别就好似python读写普通文件和二进制文件1
2
3
4
5
6
7
8
9
10
11
12
13
14# -*- coding: utf-8 -*-
import requests
from PIL import Image
from io import BytesIO
img_src = 'http://724.169pp.net/bizhi/2017/039/1.jpg'
response = requests.get(img_src)
image = Image.open(BytesIO(response.content))
#image = Image.open(StringIO(response.content))
image.save(r'C:\\Users\\ME\\Desktop\\' + '1.jpg')
#second 常用
src = "https://i0.hdslb.com/bfs/sycp/creative_img/201912/01b2f081d58e49c708c1d32b7b8c20ed.jpg"
#r = requests.get(src,headers=header)
with open("bbb.jpg", "wb")as f: # wb是写二进制
f.write(requests.get(src,headers=header).content)
保存视频
1 | import re |