換個思路學Python-以爬蟲為例(一)

接觸編程也有幾年了,用過Delphi Java.寫過一些在線考試,人員管理什麼的軟體.最近覺得網路爬蟲很有意思,百度之,發現寫爬蟲的話,用Python方便些,那就開始吧.

Python是個動態類型 解釋型語言,與之前的delphi(pascal) java完全不一樣.所以稱之為零基礎學Python,不是科班出身,學習過程以野路子為主.希望給大家提供個新的思路吧.

在開始之前,先啰嗦幾句關於編程的體會: 所謂編程,就是用計算機模擬人類做事情.面對一個問題,如果你不知道程序怎麼解決,那麼先想想人是怎麼解決這個問題的. 至於演算法,就是針對計算機可以比人更長時間的工作,可以記住比人更多的內容,這兩個特點,來改進做事情的方式. 學習Python就一直按這個思路來進行.

下面開始了

網路爬蟲是做什麼的? 就是把網路上的某一你關心的資料收集整理下來.人也可以做這個事,只是電腦不知疲倦,可以幫你收集海量的資料.

目標1:收集電影票房數據

在Python上陣之前,按上面提出的思路,我們先想想人類是如何做這個事情的, 這個人類的名字就叫小明吧. 做為老網蟲的小明很容易就可以搞定這件事.小明先打開電腦的瀏覽器,輸入"百度一下,你就知道"打開百度網站,輸入電影票房幾個字,風輕雲淡的按下回車,一大票關於電影票房的網站就出來了. 打開一個你覺得有眼緣的鏈接吧.這個網站是:movie.mtime.com/boxoffice/#CN/daily 最近<湄公河行動>很火,那就關心一下這部電影的票房吧.

好了,現在把這個日票房數據 726.5萬,寫在本子上吧. 小明成功的收集了第一個數據.等等,這個數據是每半小時刷新一次,我們的目標是收集一周票房變化情況,那就請小明每半時打開這個網站,記錄一次數據......... 小明吐血而亡.....

收集票房這個目標達到了,只是小明不是鋼鐵煉成的.他堅持不了一個星期. 這種長時間的重複勞動,還是電腦這個東西來做好了.小明寫好程序,就可以高高興興的找妹子了.

終於開始寫程序了

第一件事: 把網頁抓回來

人是怎麼乾的: 輸入網址,瀏覽器就顯示對應的網頁

Python怎麼干: 和人一樣.

第一個語句 :

html=request.urlopen("http://localhost:8080/test1.html")

這個語句的意思是 使用request打開網址 "http://localhost:8080/test1.html" 把得到的東西放到html 這個變數中

等等 , 這個語句沒法執行?

request is not defined 這個提示的意思是: request是什麼鬼?

這裡說一下Python中最好用的庫了. 前輩大神們幫我們做好了很多事情,放在一起就是庫. 這裡我們用到了urllib這個庫,這東西怎麼用呢? 當然是告訴Python 我要用urllib這個庫,語句為

from urllib import request

這個語句意思是 從urllib庫中導出request 這樣就可以使用request了

再試一次

成功了, 可是 <http.client.HTTPResponse at 0x7f466ab75ac8> 是什麼鬼.

這個 我現在的理解是一個對象,就是request 從 baidu.com取回來的東西.其它就是一個網頁啦.

你一定很想知道這個東西到底有什麼內容? 那就把它讀出並列印吧

print(html.read())

這句的意思 讀html內容,用print列印.

見證奇蹟吧

奇蹟吧,這東西只有計算機能看懂吧. 怎麼辦? 前面說了,前輩大神們為我們做好庫了.那就是Beautifulsoup (美麗濃湯?) 欲知後事如何,請期待更新.....
推薦閱讀:

純 Python 製作 GIF 迷宮動畫 (不使用任何第三方庫) 演示 Wilson 演算法 + DFS 演算法 + LZW 編碼演算法
python 關於 for循環 命名空間和變數作用域的一個疑問?
chapter 9 - 用戶角色
為什麼我總是感覺python的語法很挫了,有人有同感嗎?

TAG:Python | 網頁爬蟲 |