一、需求分析
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的運行結果)
文章首發於我的個人公眾號:悅樂書。喜歡分享一路上聽過的歌,看過的電影,讀過的書,敲過的代碼,深夜的沉思。期待你的關注!