在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載。儲存圖片除了常規的做法,還可不可以有更簡便更高效的方法呢?下面是本站小編精心為大家整理的如何用python實現簡單爬蟲功能,希望對大家有幫助,更多內容請關注應屆畢業生網!
在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載,或者使用者用來做桌面桌布,或者用來做設計的素材。
我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些圖片滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低圖片的清晰度。好吧~!其實你很厲害的,右鍵檢視頁面原始碼。
我們可以通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的程式碼爬取到本地。下面就看看如何使用python來實現這樣一個功能。
一,獲取整個頁面資料
首先我們可以先獲取要下載圖片的整個頁面資訊。
getj
#coding=utf-8
import urllib
def getHtml(url):
page = pen(url)
html = ()
return html
html = getHtml
print html
Urllib 模組提供了讀取web頁面資料的介面,我們可以像讀取本地檔案一樣讀取www和ftp上的資料。首先,我們定義了一個getHtml()函式:
pen()方法用於開啟一個URL地址。
read()方法用於讀取URL上的資料,向getHtml()函式傳遞一個網址,並把整個頁面下載下來。執行程式就會把整個網頁列印輸出。
二,篩選頁面中想要的資料
Python 提供了非常強大的正則表示式,我們需要先要了解一點python 正則表示式的知識才行。
假如我們百度貼吧找到了幾張漂亮的桌布,通過到前段檢視工具。找到了圖片的'地址
修改程式碼如下:
import re
import urllib
def getHtml(url):
page = pen(url)
html = ()
return html
def getImg(html):
reg = r'src="(.+?.jpg)" pic_ext'
imgre = ile(reg)
imglist = all(imgre,html)
return imglist
html = getHtml
print getImg(html)
我們又建立了getImg()函式,用於在獲取的整個頁面中篩選需要的圖片連線。re模組主要包含了正則表示式:
ile() 可以把正則表示式編譯成一個正則表示式物件.
all() 方法讀取html 中包含 imgre(正則表示式)的資料。
執行指令碼將得到整個頁面中包含圖片的URL地址。
三,將頁面篩選的資料儲存到本地
把篩選的圖片地址通過for迴圈遍歷並儲存到本地,程式碼如下:
#coding=utf-8
import urllib
import re
def getHtml(url):
page = pen(url)
html = ()
return html
def getImg(html):
reg = r'src="(.+?.jpg)" pic_ext'
imgre = ile(reg)
imglist = all(imgre,html)
x = 0
for imgurl in imglist:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
html = getHtml
print getImg(html)
這裡的核心是用到了etrieve()方法,直接將遠端資料下載到本地。 通過一個for迴圈對獲取的圖片連線進行遍歷,為了使圖片的檔名看上去更規範,對其進行重新命名,命名規則通過x變數加1。儲存的位置預設為程式的存放目錄。
程式執行完成,將在目錄下看到下載到本地的檔案。