1. 程式人生 > >Python2下載單張圖片和爬取網頁圖片

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相關的知識。

# -*- coding:utf-8 -*
'''
知道圖片地址,下載圖片到本地
'''
import urllib

#圖片url地址
url = 'http://p1.wmpic.me/article/2017/12/22/1513930326_ciDepIns_215x185.jpg'
#方法一
#獲取圖片資料
res = urllib.urlopen(url).read()
#檔案要儲存的路徑名和檔名
path = "e:\dlimg\pic2.jpg"
#使用io寫入圖片
f = open(path , "wb")
f.write(res)
f.close()
#方法二
res2 = urllib.urlretrieve(url , 'e:\dlimg\pic3.jpg')
B.知道網頁地址,將圖片列表中的圖片全部下載到本地。
b1、還是以上面的網頁為爬取物件,在該網頁下,圖片列表中有30張照片,獲取每張圖片的src屬性值,再來下載即可。
b2、利用BeautifulSoup解析網頁,利用標籤選擇器獲取每張圖片的src屬性值。

b3、編寫程式碼。

#  -*- coding: utf-8 -*

import requests
import urllib
from bs4 import BeautifulSoup

url = 'http://www.wmpic.me/tupian/qingxin'
res = requests.get(url)
#使用BeautifulSoup解析網頁
soup = BeautifulSoup(res.text , 'html.parser')
#通過標籤選擇器定位到圖片位置(與css選擇器差不多)
pic_list = soup.select('.item_box .post a img')
i = 0
for img_url in pic_list:
    #獲取每個img標籤的src屬性
    url_list = img_url['src']
    #儲存路徑,後面是檔名
    save_path = 'E:\dlimg\\'+'downloadpic_'+str(i)+'.jpg'
    #解析圖片,寫入到本地
    pic_file = urllib.urlopen(url_list).read()
    f = open(save_path, "wb")
    f.write(pic_file)
    f.close()
    i = i+1
C.執行結果(紅色框中pic2.jpg和pic3.jpg是A步驟執行結果,其餘以downloadpic_*.jpg命名的圖片是步驟B的執行結果)


文章首發於我的個人公眾號:悅樂書喜歡分享一路上聽過的歌,看過的電影,讀過的書,敲過的程式碼,深夜的沉思。期待你的關注!