標籤:

python爬蟲——寫出最簡單的網頁爬蟲

在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設計的素材。我們可以通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地。下面就看看如何使用python來實現這樣一個功能。

開發工具

筆者使用的工具是sublimetext3,它的短小精悍(可能男人們都不喜歡這個詞)使我十分著迷。推薦大家使用,當然如果你的電腦配置不錯,pycharm可能更加適合你。

sublime text3搭建python開發環境推薦查看此博客:

[sublime搭建python開發環境][cnblogs.com/codefish/p/.

爬蟲介紹

爬蟲顧名思義,就是像蟲子一樣,爬在Internet這張大網上。如此,我們便可以獲取自己想要的東西。

既然要爬在Internet上,那麼我們就需要了解URL,法號「統一資源定位器」,小名「鏈接」。其結構主要由三部分組成:

(1)協議:如我們在網址中常見的HTTP協議。

(2)域名或者IP地址:域名,如:baidu.com,IP地址,即將域名解析後對應的IP。

(3)路徑:即目錄或者文件等。

urllib開發最簡單的爬蟲

(1)urllib簡介

(2)開發最簡單的爬蟲

百度首頁簡潔大方,很適合我們爬蟲。

爬蟲代碼如下:

結果如圖:

我們可以通過在百度首頁空白處右擊,查看審查元素來和我們的運行結果對比。

當然,request也可以生成一個request對象,這個對象可以用urlopen方法打開。

代碼如下:

運行結果和剛才相同。

(3)錯誤處理

錯誤處理通過urllib模塊來處理,主要有URLError和HTTPError錯誤,其中HTTPError錯誤是URLError錯誤的子類,即HTTRPError也可以通過URLError捕獲。HTTPError可以通過其code屬性來捕獲。

處理HTTPError的代碼如下:

運行結果如圖:

404為列印出的錯誤代碼,關於此詳細信息大家可以自行百度。

URLError可以通過其reason屬性來捕獲。

chuliHTTPError的代碼如下:

運行結果如圖:

既然為了處理錯誤,那麼最好兩個錯誤都寫入代碼中,畢竟越細緻越清晰。須注意的是,HTTPError是URLError的子類,所以一定要將HTTPError放在URLError的前面,否則都會輸出URLError的,如將404輸出為Not Found。

代碼如下:

文章來源:segmentfault.com/a/1190

作者:xiaomi

小月兒


推薦閱讀:

用數據說話,Python是不是越來越火了?
揣著Django做項目2:組隊
python 解碼錯誤提示的位置?
利用LendingClub數據建模

TAG:Python |