Python2下载单张图片和爬取网页图片
一、需求分析
1、知道图片的url地址,将图片下载到本地。
2、知道网页地址,将图片列表中的图片全部下载到本地。
二、准备工作
1、开发系统:win7 64位。
2、开发环境:python2.7。
3、开发工具:PyCharm。
4、浏览器:Chrome。
三、操作步骤
A.知道图片的url地址,将图片下载到本地。
a1、打开Chrome,随意找到一个图片网站。
a2、打开开发者工具(f12键或者fn+f12键),选择第一张图片,可以看到它的src属性就是图片的地址,复制出来。
a3、编写代码。这里需要引用urllib库以及使用Python IO相关的知识。
1 # -*- coding:utf-8 -* 2 ''' 3 知道图片地址,下载图片到本地 4 ''' 5 import urllib 6 7 #图片url地址 8 url = 'http://p1.wmpic.me/article/2017/12/22/1513930326_ciDepIns_215x185.jpg' 9 #方法一 10 #获取图片数据 11 res = urllib.urlopen(url).read() 12 #文件要保存的路径名和文件名 13 path = "e:\dlimg\pic2.jpg" 14 #使用io写入图片 15 f = open(path , "wb") 16 f.write(res) 17 f.close() 18 #方法二 19 res2 = urllib.urlretrieve(url , 'e:\dlimg\pic3.jpg')
B.知道网页地址,将图片列表中的图片全部下载到本地。
b1、还是以上面的网页为爬取对象,在该网页下,图片列表中有30张照片,获取每张图片的src属性值,再来下载即可。
b2、利用BeautifulSoup解析网页,利用标签选择器获取每张图片的src属性值。
b3、编写代码。
1 # -*- coding: utf-8 -*- 2 3 import requests 4 import urllib 5 from bs4 import BeautifulSoup 6 7 url = 'http://www.wmpic.me/tupian/qingxin' 8 res = requests.get(url) 9 #使用BeautifulSoup解析网页 10 soup = BeautifulSoup(res.text , 'html.parser') 11 #通过标签选择器定位到图片位置(与css选择器差不多) 12 pic_list = soup.select('.item_box .post a img') 13 i = 0 14 for img_url in pic_list: 15 #获取每个img标签的src属性 16 url_list = img_url['src'] 17 #保存路径,后面是文件名 18 save_path = 'E:\dlimg\\'+'downloadpic_'+str(i)+'.jpg' 19 #解析图片,写入到本地 20 pic_file = urllib.urlopen(url_list).read() 21 f = open(save_path, "wb") 22 f.write(pic_file) 23 f.close() 24 i = i+1
C.运行结果(红色框中pic2.jpg和pic3.jpg是A步骤运行结果,其余以downloadpic_*.jpg命名的图片是步骤B的运行结果)
文章首发于我的个人公众号:悦乐书。喜欢分享一路上听过的歌,看过的电影,读过的书,敲过的代码,深夜的沉思。期待你的关注!