爬蟲原理與數據抓取

為什麼要做網絡爬蟲?

首先請問:都說現在是"大數據時代",那數據從何而來?

企業產生的用戶數據:百度指數、阿里指數、TBI騰訊瀏覽指數、新浪微博指數

數據平臺購買數據:數據堂、國雲數據市場、貴陽大數據交易所

政府/機構公開的數據:中華人民共和國國家統計局數據、世界銀行公開數據、聯合國數據、納斯達克。

數據管理諮詢公司:麥肯錫、埃森哲、艾瑞諮詢

爬取網絡數據:如果需要的數據市場上沒有,或者不願意購買,那麼可以選擇招/做一名爬蟲工程師,自己動手豐衣足食。拉勾網Python爬蟲職位

網絡爬蟲是什麼?

網絡爬蟲(又稱為網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。

爬蟲的更多用途

12306搶票

網站上的頭票

短信轟炸

關於Python網絡爬蟲,我們需要學習的有:

  1. Python基礎語法學習(基礎知識)
  2. 對HTML頁面的內容抓取(數據抓取)
  3. 對HTML頁面的數據提取(數據提取)
  4. Scrapy框架以及scrapy-redis分佈式策略(第三方框架)
  5. 爬蟲(Spider)、反爬蟲(Anti-Spider)、反反爬蟲(Anti-Anti-Spider)之間的鬥爭…

通用爬蟲和聚焦爬蟲

根據使用場景,網絡爬蟲可分為 通用爬蟲 和 聚焦爬蟲 兩種.

通用爬蟲

通用網絡爬蟲 是 捜索引擎抓取系統(Baidu、Google、Yahoo等)的重要組成部分。主要目的是將互聯網上的網頁下載到本地,形成一個互聯網內容的鏡像備份。

通用搜索引擎(Search Engine)工作原理

通用網絡爬蟲 從互聯網中搜集網頁,採集信息,這些網頁信息用於為搜索引擎建立索引從而提供支持,它決定著整個引擎系統的內容是否豐富,信息是否即時,因此其性能的優劣直接影響著搜索引擎的效果。

第一步:抓取網頁

搜索引擎網絡爬蟲的基本工作流程如下:

首先選取一部分的種子URL,將這些URL放入待抓取URL隊列;

取出待抓取URL,解析DNS得到主機的IP,並將URL對應的網頁下載下來,存儲進已下載網頁庫中,並且將這些URL放進已抓取URL隊列。

分析已抓取URL隊列中的URL,分析其中的其他URL,並且將URL放入待抓取URL隊列,從而進入下一個循環…

爬蟲原理與數據抓取

搜索引擎如何獲取一個新網站的URL:

  1. 新網站向搜索引擎主動提交網址:(如百度http://zhanzhang.baidu.com/linksubmit/url)
  2. 在其他網站上設置新網站外鏈(儘可能處於搜索引擎爬蟲爬取範圍)
  3. 搜索引擎和DNS解析服務商(如DNSPod等)合作,新網站域名將被迅速抓取。
  4. 但是搜索引擎蜘蛛的爬行是被輸入了一定的規則的,它需要遵從一些命令或文件的內容,如標註為nofollow的鏈接,或者是Robots協議。

Robots協議(也叫爬蟲協議、機器人協議等),全稱是“網絡爬蟲排除標準”(Robots Exclusion Protocol),網站通過Robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取,例如:

淘寶網:https://www.taobao.com/robots.txt

騰訊網: http://www.qq.com/robots.txt

第二步:數據存儲

搜索引擎通過爬蟲爬取到的網頁,將數據存入原始頁面數據庫。其中的頁面數據與用戶瀏覽器得到的HTML是完全一樣的。

搜索引擎蜘蛛在抓取頁面時,也做一定的重複內容檢測,一旦遇到訪問權重很低的網站上有大量抄襲、採集或者複製的內容,很可能就不再爬行。

第三步:預處理

搜索引擎將爬蟲抓取回來的頁面,進行各種步驟的預處理。

提取文字

中文分詞

消除噪音(比如版權聲明文字、導航條、廣告等……)

索引處理

鏈接關係計算

特殊文件處理

除了HTML文件外,搜索引擎通常還能抓取和索引以文字為基礎的多種文件類型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我們在搜索結果中也經常會看到這些文件類型。

但搜索引擎還不能處理圖片、視頻、Flash 這類非文字內容,也不能執行腳本和程序。

第四步:提供檢索服務,網站排名

搜索引擎在對信息進行組織和處理後,為用戶提供關鍵字檢索服務,將用戶檢索相關的信息展示給用戶。

同時會根據頁面的PageRank值(鏈接的訪問量排名)來進行網站排名,這樣Rank值高的網站在搜索結果中會排名較前,當然也可以直接使用 Money 購買搜索引擎網站排名,簡單粗暴。

爬蟲原理與數據抓取

但是,這些通用性搜索引擎也存在著一定的侷限性:

通用搜索引擎所返回的結果都是網頁,而大多情況下,網頁裡90%的內容對用戶來說都是無用的。

不同領域、不同背景的用戶往往具有不同的檢索目的和需求,搜索引擎無法提供針對具體某個用戶的搜索結果。

萬維網數據形式的豐富和網絡技術的不斷髮展,圖片、數據庫、音頻、視頻多媒體等不同數據大量出現,通用搜索引擎對這些文件無能為力,不能很好地發現和獲取。

通用搜索引擎大多提供基於關鍵字的檢索,難以支持根據語義信息提出的查詢,無法準確理解用戶的具體需求。

針對這些情況,聚焦爬蟲技術得以廣泛使用。

聚焦爬蟲

聚焦爬蟲,是"面向特定主題需求"的一種網絡爬蟲程序,它與通用搜索引擎爬蟲的區別在於: 聚焦爬蟲在實施網頁抓取時會對內容進行處理篩選,儘量保證只抓取與需求相關的網頁信息。

而我們今後要學習的網絡爬蟲,就是聚焦爬蟲。


分享到:


相關文章: