一直都知道爬蟲很厲害版扩,也一直都想學,但是也一直拖到現(xiàn)在才開始寫甜刻。終于終于绍撞,今天寫了第一條爬蟲,開心:D非常感謝莫煩得院。一激動就決定“贊助”一下我們的“莫煩”大哥傻铣。所有的代碼 莫煩PYTHON上面都有,我也不當搬運工了祥绞。今天還是想在這個學術的非洲,神圣的地方撒撒雞湯。
2018年已經過去9天了⊥删叮現(xiàn)在覺著這句話很對“小時候覺得時間過得很慢两踏,過了二十幾歲以后,感覺時間真的是轉瞬即逝兜喻±掳辏”18年,17年虹统,每次在兩年交接的時候就會傻傻分不清到底是哪一年弓坞。所以最近在寫日期的時候寫成2017年* 月 *日。也許是一種慣性车荔。
慣性不知道算不算是一種“拖延”渡冻。因為我覺得自己的拖延癥越來越嚴重了。算是今天寫了爬蟲的代碼的一點感想吧忧便。我發(fā)現(xiàn)其實你真正動身去做的時候族吻,很多事情真的沒有你想象得那么難。
我之前也嘗試過寫過珠增,每一次在吹起號角的時候就敗下陣來超歌。有時候是士氣低迷,有時候是戰(zhàn)靴的鞋帶沒有綁好蒂教,有時候是不知道敵人在哪里巍举。
我有很多事情需要去做。但是我常衬猓花太多的時間在“準備”->"放棄"做這些事情上懊悯。也可能是蜓谋,我沒有找到做一件事情對的路子。
所以還是特別特別感謝“莫煩大神”炭分,對于帶我入門這件事情上桃焕,他幫了我很多。比如寫爬蟲這件事情捧毛,首先你要知道學習這個有什么用處观堂,知道:
第一,你為什么要學呀忧。
莫煩在視頻里show了一下他自己做的悉尼各個區(qū)域的租房價格的表格师痕。這一下子就讓我有了學習的興趣。因為畢業(yè)以后荐虐,我也會租房子,我要是可以像他一樣爬取房租數據丸凭,一定是一件很cool的事情福扬。所以我決定一定要學爬蟲。
第二惜犀,要知道你面對的“敵人”是誰
對于爬蟲而言铛碑,它要爬取的是網頁,所以你要大概了解一下網頁的大體結構虽界。但其實網頁的結構是一件很復雜很復雜的事情汽烦,我之前也學過一段時間,真的超級復雜莉御。我覺得它就是一個沒什么邏輯性的東西撇吞。要是擱以前,我估計學到這里礁叔,又會鉆到這個“大天坑”里牍颈,然后搗鼓一段時間,最后放棄琅关。莫煩告訴我們煮岁,學習爬蟲,你不需要對css語法涣易,html語法有太多的了解画机,知道個大概就可以了。把我又拉回來一次新症。
第三步氏,怎么"打"
兵器是什么?工欲善其事徒爹,必先利其器戳护。剖析網頁python有一利器就是BeautifulSoup金抡。我之前自己看書也看過,但是覺得看和沒看沒有兩樣腌且。直到莫煩一句簡單明了的話梗肝,給BeautifulSoup一個定位:
我們總結一下爬網頁的流程, 讓你對 BeautifulSoup 有一個更好的定位.
1. 選著要爬的網址 (url)
2. 使用 python 登錄上這個網址 (urlopen等)
3. 讀取網頁信息 (read() 出來)
4. 將讀取的信息放入 BeautifulSoup
使用 BeautifulSoup 選取 tag 信息等 (代替正則表達式)
html = urlopen(url).read().decode('utf-8')
soup = BeautifulSoup(html,features='lxml')
你可以想象一下,用python登入然后讀取出來的網頁內容html铺董,經過BeautifulSoup 的“手”巫击,就變成了一道美味的soup啦。
這碗soup里精续,要什么有什么坝锰。你想要<h1>標簽的內容
head = soup.find('h1').get_text()
大概的爬蟲就是這樣一個過程。但是為了更好地擊敗敵人重付,兵不厭詐顷级,還需要一些戰(zhàn)術。
第四确垫,奇門遁甲
就是我們的正則表達式弓颈。這個東西,我之前也學過删掀。但是翔冀,用得迷迷糊糊的。(我發(fā)現(xiàn)披泪,我看過的東西是挺多的纤子,但是都很零碎,所以很容易就忘)這一次,看了莫煩的教程,然后自己再回憶一下涝桅,覺得正則表達式也沒有那么復雜了偎箫。可能也是讀書百遍,其義自現(xiàn)吧。img_links = soup.find_all('img',{'src':re.compile(".*?\.jpg")})
利用正則表達式可以找出格式為jpg的圖片鏈接。
第五 说订,養(yǎng)兵千日 用兵一時
上面講到大概就是一個簡答爬蟲的流程。然后就開始爬簡答的百度詞條潮瓶。
代碼見 莫煩PYTHON或者是我的github