python爬蟲——寫出最簡單的網頁爬蟲
在我們日常上網瀏覽網頁的時候,經常會看到一些好看的圖片,我們就希望把這些圖片保存下載,或者用戶用來做桌面壁紙,或者用來做設計的素材。我們可以通過python 來實現這樣一個簡單的爬蟲功能,把我們想要的代碼爬取到本地。下面就看看如何使用python來實現這樣一個功能。
開發工具
筆者使用的工具是sublimetext3,它的短小精悍(可能男人們都不喜歡這個詞)使我十分著迷。推薦大家使用,當然如果你的電腦配置不錯,pycharm可能更加適合你。
sublime text3搭建python開發環境推薦查看此博客:
[sublime搭建python開發環境][http://www.cnblogs.com/codefish/p/4806849.
爬蟲介紹
爬蟲顧名思義,就是像蟲子一樣,爬在Internet這張大網上。如此,我們便可以獲取自己想要的東西。
既然要爬在Internet上,那麼我們就需要了解URL,法號「統一資源定位器」,小名「鏈接」。其結構主要由三部分組成:
(1)協議:如我們在網址中常見的HTTP協議。
(2)域名或者IP地址:域名,如:http://www.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。
代碼如下:
文章來源:https://segmentfault.com/a/1190000010567472
作者:xiaomi
小月兒
推薦閱讀:
※用數據說話,Python是不是越來越火了?
※揣著Django做項目2:組隊
※python 解碼錯誤提示的位置?
※利用LendingClub數據建模
TAG:Python |