python專題-爬蟲功能

來源:互聯網
上載者:User

標籤:查看   直接   定義   執行   mil   目錄   選擇   family   code   

 在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片儲存下載,或者使用者用來做案頭壁紙,或者用來做設計的素材。

  我們最常規的做法就是通過滑鼠右鍵,選擇另存新檔。但有些圖片滑鼠右鍵的時候並沒有另存新檔選項,還有辦法就通過就是通過工具截取下來,但這樣就降低圖片的清晰度。好吧~!其實你很厲害的,右鍵查看頁面原始碼。

  我們可以通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地。下面就看看如何使用python來實現這樣一個功能。

 

 

一,擷取整個頁面資料

 

首先我們可以先擷取要下載圖片的整個頁面資訊。

getjpg.py

#coding=utf-8import urllibdef getHtml(url):    page = urllib.urlopen(url)    html = page.read()    return htmlhtml = getHtml("http://tieba.baidu.com/p/2738151262")print html

  Urllib 模組提供了讀取web頁面資料的介面,我們可以像讀取本地檔案一樣讀取www和ftp上的資料。首先,我們定義了一個getHtml()函數:

  urllib.urlopen()方法用於開啟一個URL地址。

  read()方法用於讀取URL上的資料,向getHtml()函數傳遞一個網址,並把整個頁面下載下來。執行程式就會把整個網頁列印輸出。

 

 

二,篩選頁面中想要的資料

 

  Python 提供了非常強大的Regex,我們需要先要瞭解一點python Regex的知識才行。

http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html

 

假如我們百度貼吧找到了幾張漂亮的壁紙,通過到前段查看工具。找到了圖片的地址,如:src=”http://imgsrc.baidu.com/forum......jpg”pic_ext=”jpeg”

修改代碼如下:

import reimport urllibdef getHtml(url):    page = urllib.urlopen(url)    html = page.read()    return htmldef getImg(html):    reg = r‘src="(.+?\.jpg)" pic_ext‘    imgre = re.compile(reg)    imglist = re.findall(imgre,html)    return imglist         html = getHtml("http://tieba.baidu.com/p/2460150866")print getImg(html)

  我們又建立了getImg()函數,用於在擷取的整個頁面中篩選需要的圖片串連。re模組主要包含了Regex:

  re.compile() 可以把Regex編譯成一個Regex對象.

  re.findall() 方法讀取html 中包含 imgre(Regex)的資料。

    運行指令碼將得到整個頁面中包含圖片的URL地址。

 

 

三,將頁面篩選的資料儲存到本地

 

把篩選的圖片地址通過for迴圈遍曆並儲存到本地,代碼如下:

 

#coding=utf-8import urllibimport redef getHtml(url):    page = urllib.urlopen(url)    html = page.read()    return htmldef getImg(html):    reg = r‘src="(.+?\.jpg)" pic_ext‘    imgre = re.compile(reg)    imglist = re.findall(imgre,html)    x = 0    for imgurl in imglist:        urllib.urlretrieve(imgurl,‘%s.jpg‘ % x)        x+=1html = getHtml("http://tieba.baidu.com/p/2460150866")print getImg(html)

 

  這裡的核心是用到了urllib.urlretrieve()方法,直接將遠端資料下載到本地。

  通過一個for迴圈對擷取的圖片串連進行遍曆,為了使圖片的檔案名稱看上去更規範,對其進行重新命名,命名規則通過x變數加1。儲存的位置預設為程式的存放目錄。

程式運行完成,將在目錄下看到下載到本地的檔案。

 

 

python專題-爬蟲功能

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.