天天看點

爬蟲基礎篇(一)

爬蟲初見

  1. 定義
  2. 類型
  3. 合法性
  4. 基本原理
  5. 規範性
1.爬蟲的定義

網絡爬蟲是一種按照一定規則自動抓取網絡資訊的程式或者腳本。簡單的可以這樣說,網絡爬蟲就是根據一定的算法實作程式設計開發,主要通過URL實作對資料的抓取和發掘。

在資料大時代的今天,資料的規模越來越龐大,但是資料的價值普遍偏低,為了能夠從龐大的資料中擷取到有價值的東西,于是延伸出了網絡爬蟲,資料分析等職位,而近幾年的網絡爬蟲需求更是巨大,往往供不應求。

而對于網絡爬蟲而言,實際上有許多語言都可以實作,比如Java,C++,Python,但是相比較而言 Python 是一門更合适的語言,其中有許多庫為我們提供了接口,我們隻需要使用這些庫便可以實作對資料的抓取和儲存,同時對代碼的重構也十分友善。

2. 爬蟲的類型

爬蟲根據系統結構和開發技術大緻分為 4 種類型:通用網絡爬蟲,聚焦網絡爬蟲,增量式網絡爬蟲和深層網絡爬蟲。

  • 通用網絡爬蟲

又名全網爬蟲,常見的有百度,Google,必應等搜尋引擎,爬行對象為一些初始的 URL 到整個網站,主要為門戶站點搜尋引擎和大型網站服務采集資料

  • 聚焦網絡爬蟲

又名主題網絡爬蟲,是選擇性的爬取根據需求的主題相關頁面的網絡爬蟲,隻爬取與主題相關的頁面,不需要廣泛的覆寫無關的網頁。

  • 增量式網絡爬蟲

對已下載下傳網頁采取增量式更新和隻爬取新産生或者已經發生變化的網頁,能夠在一定程度上保證所爬取的網頁盡可能是新的網頁

  • 深層網絡爬蟲

該爬蟲可以通過一定的技術手段,對大部分不能通過靜态 URL 擷取的,隐藏在表單之後,隻有使用者送出後才能獲得的網絡頁面

3. 爬蟲的合法性

網絡爬蟲在絕大多數情況下是合法的,在生活中網絡爬蟲幾乎都有爬蟲的應用,比如搜尋引擎搜尋到的内容都是通過爬蟲爬取到的資訊,是以網絡爬蟲作為一門技術是不違法的,而且在很多情況下都可以放心的使用,但是如果使用爬蟲來進行違法行為,但是是違法觸規的,主要有以下兩個:

  • 利用爬蟲技術與黑客技術結合,攻擊網站背景,進而盜取背景資料
  • 利用爬蟲惡意攻擊網站,造成網站系統的癱瘓
4.爬蟲的工作原理

下面這張圖檔很好的展示了爬蟲的基本原理

爬蟲基礎篇(一)

1

主要步驟是:

  • 向伺服器(Web)發送請求
  • 接受伺服器的響應,擷取對應的 html 等資源
  • 對擷取到的資源進行解析,并同時擷取其中的連結再進行第一步(該步有時可無)
  • 将解析到的資源進行存儲,可以以文本形式,也可以存儲到資料庫中
5. 爬蟲的規範

對于一個網頁而言,可能擁有自己的對于爬蟲的一份規定–robots協定,我們可以在一個域名後面輸入robots.txt來檢視對應的協定,一般而言,我們要遵循這些協定,不過如果爬蟲速度通路與人差不多,也可以使用爬蟲來爬取,下面是上海交通大學鏡像網的 robots.txt,可在此 檢視,具體内容如下:

# robots.txt for http://ftp.sjtu.edu.cn/
User-agent: *
Disallow: /logs/
           
  • Use-agent

    : 限定爬取的使用者,在上面 * 表示所有的使用者, 有時會指定特殊的使用者,比如百度(Baiduspider),Google(Googlebot)等等
  • Disallow

    : 表示不允許爬取的内容
  • Allow

    : 表示可以爬取的内容(此案例無)

大家也可以試試淘寶、京東等 robots 協定

爬蟲的簡單介紹就到這裡,下一小節具體學習如何配置相關環境
爬蟲基礎篇(一)
  1. 圖檔來源于網絡 ↩︎