python3爬蟲之開篇
寫在前面的話:
折騰爬蟲也有一段時間了,從一開始的懵懵懂懂,到現在的有一定基礎,對於這一路的跌跌撞撞,個人覺得應該留下一些文字性的東西,畢竟好記性不如爛筆頭,而且畢竟這是吃飯的傢伙,必須用心對待才可以,從今天起,我將會把關於爬蟲的東西進行一個整理,以供後期的查閱,同時也想將自己的一點點經驗分享給大家。
關於爬蟲,在我們瞭解什麼是爬蟲之前,首先應該清楚為什麼會需要爬蟲。隨著網際網路的全球化,人們可以非常方便的通過網路來獲取資訊,但是,起初獲取資訊的方式就是人為的瀏覽、記錄。但是當人們需要獲取大量的資訊時,人工方式就顯得效率極其低下,這時,有些人就編寫了一些程式放在網際網路上執行,這些程式會按照人們編寫的邏輯來快速的在網際網路上採集資訊,省事又省力,這種程式就叫做爬蟲,也叫做蜘蛛(spider)。所以我們知道了,爬蟲其實就是人為編寫的一些程式,也也可以稱之為指令碼。
爬蟲是從哪兒來分析採集資料呢?當然是從網頁上,比如人來獲取資訊是輸入了關鍵字來搜尋,然後點選想要看的網頁,或者直接輸入某一個網址來獲取某一個頁面的,那麼爬蟲呢?爬蟲是如何獲取頁面的呢? 說白了,爬蟲也是通過技術手段來模擬人的操作來獲取頁面的過程。爬蟲先是模擬人的操作來獲取到目標頁面,然後再對目標頁面進行分析,從而採集到人們剛興趣的資訊。 主要原理如下圖:
從上圖我們瞭解到了爬蟲的基本原理,但是請大家注意,上圖中有兩個過程我標紅了,為什麼呢?因為在整個爬取資料的過程中,這兩個步驟是非常非常重要的,而且這也是爬蟲與反爬相互博弈的地方。
從上圖我們可以瞭解到,爬蟲的執行,主要分為四個過程:
1. 獲取目標url
2. 獲取網頁
3. 頁面解析、提取資訊
4. 資料持久化
不過對於我們來說,在編寫爬蟲之前,我們肯定已經知道了想要獲取的網站地址,所以第一步我們基本上可以跳過。
下面的二、三、四步是非常重要的,但是最最重要的還是第二、三步。
關於第二步:獲取網頁,我們首先應該掌握兩種Python標準庫,一種是urllib,另一種是request,這兩種庫是幫助我們來獲取目標網頁的,當然還有一些其他的方法,這個我們以後會細細說來。
對於第三步:解析頁面,我們需要掌握集中解析庫:Xpath、css選擇器‘、正則表示式、Beautiful Soup、pyquery。這些庫可以幫助我們從html網頁的各種標籤中準確的獲取到我們想要得到的資料。
關於第四步:資料的持久化,一般來說資料都會被放到資料庫中,常見的資料庫如mysql,oracle,MongoDB等等,當然,有時資料量過大也會有專門的文字伺服器,圖片伺服器來存放資料。
好了,囉囉嗦嗦說了這麼多,下一篇部落格我就會直接從常用的請求庫urllib來開始說起。