前段時間應(yīng)朋友之邀,幫忙用Python寫爬蟲抓去了些數(shù)據(jù)。作為世界上最好用兩種語言(指Python2.x和Python3.x,為網(wǎng)友的戲謔之言),Python爬蟲確實很強大,幫完朋友后,決定自己再慢慢研究研究,好好學習一下Python這門眼下炙手可熱的編程語言。
爬蟲,其實主要分為幾個步驟:
1、獲取網(wǎng)頁內(nèi)容
2、解析網(wǎng)頁內(nèi)容,獲得所需數(shù)據(jù)
3、存儲數(shù)據(jù)
基本上,爬蟲都是按照這個思路一行一行代碼敲下來的。
好了,那么首先就進行第一步,獲取網(wǎng)頁內(nèi)容。
獲取網(wǎng)頁內(nèi)容,第一步又是什么呢,自然是得先有個網(wǎng)址啦,你打開瀏覽器瀏覽網(wǎng)站,第一步不就是往地址欄里面輸入網(wǎng)址嗎。這里我以豆瓣為例,準備抓取豆瓣網(wǎng)上的內(nèi)容。所以準備的地址就是:http://douban.com

如上圖所示,在瀏覽器中只要輸入http://douban.com然后敲擊回車就能獲得豆瓣的頁面,在python代碼中需要敲下如下代碼
import requests
response=requests.get('douban.com')
然后運行代碼,發(fā)現(xiàn)報錯了

根據(jù)錯誤提示,我們必須把'douban.com'改成'http://douban.com'
根據(jù)提示更改代碼
import requests??
response = requests.get('http://douban.com')
再次運行
一切正常,也就是說網(wǎng)頁已經(jīng)抓取下來了,而抓取下來的一切信息都在我們命名的這個“response”變量里。在這里我用了最簡單的網(wǎng)頁抓取方式,就是requests模塊的get方法,在這里只需要傳遞一個參數(shù),就是網(wǎng)頁的地址就OK了,當然了,還能傳遞其他不同的參數(shù)發(fā)揮不同的作用,但是目前還用不到,以后慢慢再說。
接下來,這個‘response’要如何操作呢,或者說它支持哪些操作?
這個時候,我們需要用Python的內(nèi)置函數(shù)dir來幫忙啦。
dir(response)

可以看到,以下這些就是可以對‘response’進行的操作,至于每一個操作都是什么意思呢,需要我們慢慢摸索,只有自己摸索,才能學得到精髓。
當然啦,我們最關(guān)心的就是網(wǎng)頁的內(nèi)容,畢竟數(shù)據(jù)都在那里面藏著呢。網(wǎng)頁的內(nèi)容就是倒數(shù)第二個‘text’。
import requests
response = requests.get('http://douban.com')
print(response.text)
結(jié)果如下

得到了網(wǎng)頁的內(nèi)容,是一個html的文檔。
至此,第一步獲取網(wǎng)頁內(nèi)容圓滿成功。