1. 程式人生 > >爬蟲初步:入門與介紹

爬蟲初步:入門與介紹

1.什麼是爬蟲   經常訪問網路的朋友可能需要開啟各種各樣的網頁。網頁與網頁、網頁內部之間的相互連線都是通過一種叫做超連結的東西進行關聯的,這種超連結,專業術語叫做統一資源定位符,英文縮寫為url,也就是我們常說的網址。 使用者通過在瀏覽器中輸入url向伺服器訪問請求,使用的是一種叫做http或者https協議的固定通訊格式來獲取或者傳送資料。   我們可以把網際網路想象為一個巨大的蜘蛛網路,如下圖所示: 可以把每個網頁看作這個網路中的節點,url看作節點間一條條的線。通過其中的某一個節點,以及與之關聯的url,遞迴呼叫,就能實現訪問網路中的所有資源。事實上,使用者在使用搜索引擎抓取資訊時,使用的原理本質與這個相同,只不過搜尋引擎會藉助一些強大的演算法,比如PageRank等演算法對不同的連結進行不同的加權處理,不然以當前網際網路的容量,搜尋引擎的伺服器也受不了。根據權威部門統計,目前搜尋引擎能夠訪問的網頁量佔總比不到60%,也就是說有超過40%的網頁處於暗網之中,除了專門訪問,在無牆的狀態下,外界也無法訪問到。 爬蟲的本質指的是通過指令碼的形式,通過以上原理,幫助人們去自動抓取網際網路中的網頁,從而實現資料採集的目的。   當然,由於智慧財產權的保護,不是所有的網路資源都能夠免費訪問。並且一般大型網站都會有針對爬蟲的反爬蟲機制,既是對自身知識資源的保護,也是為了避免DDos攻擊,消耗過多的連結資源。   2.爬蟲有什麼用 上面介紹了,爬蟲能夠根據使用者的自身需求,通過自定義規則,幫助使用者去自動抓取網路資源,從而達到一個收集資料的作用。   在大資料時代,資料是一切分析的來源,如何獲取大量、高質的資料,是進行資料分析、資料探勘、資料建模的首要條件。而網際網路蘊含著各種各樣的資源,如何有效的獲取資源,獲取資料,搶佔行業先機就顯得特別重要。因此,爬蟲的重要性不言而喻。   3.學習爬蟲需要的基礎知識 因為爬蟲涉及的是全球資訊網,因此大家要對編寫網頁的語言有所掌握,這裡涉及html、css、js。除此之外,因為web網路主要是通過http協議進行通訊的,因此熟練掌握http協議也是最基本的要求。其他的,比如ajax、dom、動態驗證碼之類的也是要掌握。不然在實際運用中,很多功能會受限,達不到理想的效果。   4.如何學習爬蟲 既然對爬蟲有了一個大體的認識,那麼如何學爬蟲呢?   首先肯定是要熟悉html、css、js和http協議,因為這些都是一個網頁的基本構成部分,都這些不熟,網路爬蟲無從談起。   在對網頁有了基本的認識之後,學習一門高階語言進行爬蟲操作將必不可少。事實上,任何一種高階語言,比如說C、Java、python、shell、perl等,都是可以進行爬蟲操作的。只不過我們這裡講的是python語言,因此在這裡推薦使用python進行爬蟲學習。   幸運的事,python已經為我們提供了很多現成的開發包,比如beautifulsoup、request、scrapy、xpath等等,來方便我們進行爬蟲操作。通過利用這些工具,我們能夠非常簡單、高效地爬蟲網頁中的內容,為我們下一步的資料分析打下堅實的基礎。   &nbs