通用爬蟲與聚焦爬蟲
根據使用場景,網路爬蟲可分為 通用爬蟲 和 聚焦爬蟲 兩種。
- 通用爬蟲
通用網路爬蟲 是 捜索引擎抓取系統(Baidu、Google、Yahoo等)的重要組成部分。主要目的是將網際網路上的網頁下載到本地,形成一個網際網路內容的映象備份。
通用網路爬蟲 從網際網路中搜集網頁,採集資訊,這些網頁資訊用於為搜尋引擎建立索引從而提供支援,它決定著整個引擎系統的內容是否豐富,資訊是否即時,因此其效能的優劣直接影響著搜尋引擎的效果。
1.1 通用搜尋引擎(Search Engine)工作原理
第一步:抓取網頁
搜尋引擎網路爬蟲的基本工作流程如下:
首先選取一部分的種子URL,將這些URL放入待抓取URL佇列;
取出待抓取URL,解析DNS得到主機的IP,並將URL對應的網頁下載下來,儲存進已下載網頁庫中,並且將這些URL放進已抓取URL佇列。
分析已抓取URL佇列中的URL,分析其中的其他URL,並且將URL放入待抓取URL佇列,從而進入下一個迴圈…
搜尋引擎如何獲取一個新網站的URL:
新網站向搜尋引擎主動提交網址:(如百度
在其他網站上設定新網站外鏈(儘可能處於搜尋引擎爬蟲爬取範圍)
搜尋引擎和DNS解析服務商(如DNSPod等)合作,新網站域名將被迅速抓取。
但是搜尋引擎蜘蛛的爬行是被輸入了一定的規則的,它需要遵從一些命令或檔案的內容,如標註為nofollow的連結,或者是Robots協議。
Robots協議(也叫爬蟲協議、機器人協議等),全稱是“網路爬蟲排除標準”(Robots Exclusion
Protocol),網站透過Robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,例如:
淘寶網:
騰訊網: http://www.qq.com/robots.txt
第二步:資料儲存
搜尋引擎透過爬蟲爬取到的網頁,將資料存入原始頁面資料庫。其中的頁面資料與使用者瀏覽器得到的HTML是完全一樣的。
搜尋引擎蜘蛛在抓取頁面時,也做一定的重複內容檢測,一旦遇到訪問權重很低的網站上有大量抄襲、採集或者複製的內容,很可能就不再爬行。
第三步:預處理
搜尋引擎將爬蟲抓取回來的頁面,進行各種步驟的預處理。
提取文字
中文分詞
消除噪音(比如版權宣告文字、導航條、廣告等……)
索引處理
連結關係計算
特殊檔案處理
…
除了HTML檔案外,搜尋引擎通常還能抓取和索引以文字為基礎的多種檔案型別,如 PDF、Word、WPS、XLS、PPT、TXT 檔案等。我們在搜尋結果中也經常會看到這些檔案型別。
但搜尋引擎還不能處理圖片、影片、Flash 這類非文字內容,也不能執行指令碼和程式。
第四步:提供檢索服務,網站排名
搜尋引擎在對資訊進行組織和處理後,為使用者提供關鍵字檢索服務,將使用者檢索相關的資訊展示給使用者。
同時會根據頁面的PageRank值(連結的訪問量排名)來進行網站排名,這樣Rank值高的網站在搜尋結果中會排名較前,當然也可以直接使用 Money 購買搜尋引擎網站排名,簡單粗暴。
但是,這些通用性搜尋引擎也存在著一定的侷限性:
-
通用搜尋引擎所返回的結果都是網頁,而大多情況下,網頁裡90%的內容對使用者來說都是無用的。
-
不同領域、不同背景的使用者往往具有不同的檢索目的和需求,搜尋引擎無法提供針對具體某個使用者的搜尋結果。
-
全球資訊網資料形式的豐富和網路技術的不斷髮展,圖片、資料庫、音訊、影片多媒體等不同資料大量出現,通用搜尋引擎對這些檔案無能為力,不能很好地發現和獲取。
-
通用搜尋引擎大多提供基於關鍵字的檢索,難以支援根據語義資訊提出的查詢,無法準確理解使用者的具體需求。
針對這些情況,聚焦爬蟲技術得以廣泛使用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026917/viewspace-2946608/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 爬蟲與反爬蟲技術簡介爬蟲
- 爬蟲:多程式爬蟲爬蟲
- websocket與爬蟲Web爬蟲
- C#爬蟲與反爬蟲--字型加密篇C#爬蟲加密
- Java爬蟲與Python爬蟲的區別?Java爬蟲Python
- 爬蟲--Scrapy簡易爬蟲爬蟲
- python爬蟲---網頁爬蟲,圖片爬蟲,文章爬蟲,Python爬蟲爬取新聞網站新聞Python爬蟲網頁網站
- Python爬蟲與Java爬蟲有何區別?Python爬蟲Java
- 反爬蟲之字型反爬蟲爬蟲
- 爬蟲進階:反反爬蟲技巧爬蟲
- 爬蟲爬蟲
- 不會Python爬蟲?教你一個通用爬蟲思路輕鬆爬取網頁資料Python爬蟲網頁
- Python爬蟲開發(二):整站爬蟲與Web挖掘Python爬蟲Web
- 【爬蟲】爬蟲專案推薦 / 思路爬蟲
- 網路爬蟲——爬蟲實戰(一)爬蟲
- 【python爬蟲】python爬蟲demoPython爬蟲
- 爬蟲那些事-爬蟲設計思路爬蟲
- 通用爬蟲技術框架是什麼?爬蟲框架
- Scrapy框架的使用之Scrapy通用爬蟲框架爬蟲
- 爬蟲專案(一)爬蟲+jsoup輕鬆爬知乎爬蟲JS
- 爬蟲技術(二)-客戶端爬蟲爬蟲客戶端
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- request爬蟲爬蟲
- 爬蟲2爬蟲
- 科普:爬蟲爬蟲
- scrapy爬蟲爬蟲
- 爬蟲概述爬蟲
- app爬蟲APP爬蟲
- 爬蟲案例爬蟲
- IPIDEA乾貨|Java爬蟲與Python爬蟲的區別IdeaJava爬蟲Python
- C語言爬蟲程式編寫的爬取APP通用模板C語言爬蟲APP
- Python爬蟲教程-01-爬蟲介紹Python爬蟲
- 分散式爬蟲原理之分散式爬蟲原理分散式爬蟲
- 分散式通用爬蟲管理平臺Crawlab分散式爬蟲
- scrapy通用專案和爬蟲程式碼模板爬蟲
- Python爬蟲開發與專案實戰——基礎爬蟲分析Python爬蟲
- Python爬蟲開發與專案實戰 3: 初識爬蟲Python爬蟲