我們在瀏覽網頁的時候,有時會看到一些或者很多好看的,希望能將它們快速有效的儲存起來,當個桌布了,設定成某個應用的背景等等。
首先我們大多數人最常規的做法就是通過滑鼠右鍵要儲存的,然後另存為。但是,有些並沒有另存為選項,怎麼辦?截圖?(如果你不要求清晰度和完整度可以考慮截圖)其實我們可以通過python來實現這樣乙個簡單的爬蟲功能,把我們想要的**爬到本地,很方便而且快捷有效。下面我們來大概講解一下。
一、獲取整個需要爬蟲的頁面資料
首先呢,我們給這個py檔案取個名字,叫getpicture.py,以baidu頁面舉個栗子:
#coding=utf-8
import
urllib
defgethtml(url):
page =urllib.urlopen(url)
html =page.read()
return
html
html = gethtml("")
print html
urllib 模組提供了讀取
web頁面資料的介面,我們可以像讀取本地檔案一樣讀取www和
ftp上的資料。首先,我們定義了乙個gethtml()函式:
urllib.urlopen()方法用於開啟乙個
url位址。
read()方法用於讀取
url
二、篩選我們想要獲取的資料(需要了解關於python正規表示式的知識)
修改一下我們的**:
import我們又建立了reimport
urllib
defgethtml(url):
page =urllib.urlopen(url)
html =page.read()
return
html
defgetimg(html):
reg = r'
src="(.+?\.png
)" pic_ext
'imgre =re.compile(reg)
imglist =re.findall(imgre,html)
return
imglist
html = gethtml("
")print getimg(html)
getimg()
函式,用於在獲取的整個頁面中篩選需要的連線。
re模組主要包含了正規表示式:
re.compile() 可以把正規表示式編譯成乙個正規表示式物件,
re.findall()
方法讀取
html
中包含
imgre
(正規表示式)的資料,執行指令碼將得到整個頁面中包含的
url位址。
三、將頁面篩選的資料儲存到本地
通過for迴圈變數並儲存,**如下:
")print getimg(html)通過乙個
for迴圈對獲取的連線進行遍歷,為了使的檔名看上去更規範,對其進行重新命名,命名規則通過
x變數加
1。儲存的位置預設為程式的存放目錄。執行指令碼成功後,可以看到我們已經把要篩選的爬下來了。
Python實現簡單的爬蟲
import urllib import re defgethtml url page urllib.urlopen url html page.read return htmlimport re import urllib defgethtml url page urllib.urlopen ur...
Python實現簡單爬蟲
簡單爬蟲構架 時序圖 管理待抓取url集合和已抓取url集合 通過兩個列表 已抓取url列表,未抓取url的列表 防止重複抓取 防止迴圈抓取 request.add header user agent mozilla 5.0 偽裝成火狐瀏覽器 urllib2.install opener opene...
Python實現簡單爬蟲
簡單爬蟲構架 時序圖 管理待抓取url集合和已抓取url集合 通過兩個列表 已抓取url列表,未抓取url的列表 防止重複抓取 防止迴圈抓取 request.add header user agent mozilla 5.0 偽裝成火狐瀏覽器 urllib2.install opener opene...