前言
一直想好好學(xué)習(xí)一下Python爬蟲,之前斷斷續(xù)續(xù)的把Python基礎(chǔ)學(xué)了一下,悲劇的是學(xué)的沒有忘的快。只能再次拿出來濾了一遍,趁熱打鐵,通過實(shí)例來實(shí)踐下,下面這篇文章主要介紹了關(guān)于Python2下載單張圖片與爬取網(wǎng)頁的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、需求分析
1、知道圖片的url地址,將圖片下載到本地。
2、知道網(wǎng)頁地址,將圖片列表中的圖片全部下載到本地。
二、準(zhǔn)備工作
1、開發(fā)系統(tǒng):win7 64位。
2、開發(fā)環(huán)境:python2.7。
3、開發(fā)工具:PyCharm。
4、瀏覽器:Chrome。
三、操作步驟
A.知道圖片的url地址,將圖片下載到本地。
a1、打開Chrome,隨意找到一個(gè)圖片網(wǎng)站。
a2、打開開發(fā)者工具(f12鍵或者fn+f12鍵),選擇第一張圖片,可以看到它的src屬性就是圖片的地址,復(fù)制出來。
a3、編寫代碼。這里需要引用urllib庫以及使用Python IO相關(guān)的知識(shí)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
# -*- coding:utf-8 -* ''' 知道圖片地址,下載圖片到本地 ''' import urllib #圖片url地址 url = 'http://p1.wmpic.me/article/2017/12/22/1513930326_ciDepIns_215x185.jpg' #方法一 #獲取圖片數(shù)據(jù) 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.知道網(wǎng)頁地址,將圖片列表中的圖片全部下載到本地。
b1、還是以上面的網(wǎng)頁為爬取對(duì)象,在該網(wǎng)頁下,圖片列表中有30張照片,獲取每張圖片的src屬性值,再來下載即可。
b2、利用BeautifulSoup解析網(wǎng)頁,利用標(biāo)簽選擇器獲取每張圖片的src屬性值。
b3、編寫代碼。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# -*- coding: utf-8 -*- import requests import urllib from bs4 import BeautifulSoup url = 'http://www.wmpic.me/tupian/qingxin' res = requests.get(url) #使用BeautifulSoup解析網(wǎng)頁 soup = BeautifulSoup(res.text , 'html.parser' ) #通過標(biāo)簽選擇器定位到圖片位置(與css選擇器差不多) pic_list = soup.select( '.item_box .post a img' ) i = 0 for img_url in pic_list: #獲取每個(gè)img標(biāo)簽的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.運(yùn)行結(jié)果(紅色框中pic2.jpg和pic3.jpg是A步驟運(yùn)行結(jié)果,其余以downloadpic_*.jpg命名的圖片是步驟B的運(yùn)行結(jié)果)
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)服務(wù)器之家的支持。
原文鏈接:http://www.cnblogs.com/xiaochuan94/archive/2017/12/25/8108857.html