保存图片
urllib
用法:urlretrieve(url, filename=None, reporthook=None, data=None)
参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据)
参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度
参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头
1 2 3 4 5 6 7 8 9
| import urllib
img_src = 'http://724.169pp.net/bizhi/2017/039/1.jpg' urllib.request.urlretrieve(img_src,r'C:\\Users\\ME\\Desktop\\1.jpg')
data = urllib.urlopen(img_src).read() with open("bbb.jpg", "wb")as f: f.write(data)
|
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
| 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.save(r'C:\\Users\\ME\\Desktop\\' + '1.jpg')
src = "https://i0.hdslb.com/bfs/sycp/creative_img/201912/01b2f081d58e49c708c1d32b7b8c20ed.jpg"
with open("bbb.jpg", "wb")as f: f.write(requests.get(src,headers=header).content)
|
保存视频
1 2 3 4 5 6 7
| import re import requests response = requests.get('https://vd4.bdstatic.com/mda-jcrx64vi5vct2d2u/sc/mda-jcrx64vi5vct2d2u.mp4?auth_key=1557734214-0-0-d6a29a90222c6caf233e8a2a34c2e37a&bcevod_channel=searchbox_feed&pd=bjh&abtest=all') video = response.content with open(r'D:\图片\绿色.mp4','wb') as fw: fw.write(video) fw.flush()
|