- 網絡數據采集技術:Java網絡爬蟲實戰
- 錢洋等
- 787字
- 2020-09-29 15:49:46
1.2 網絡爬蟲分類
網絡爬蟲按照系統結構和實現技術,大致可分為4類,即通用網絡爬蟲、聚焦網絡爬蟲、增量網絡爬蟲和深層網絡爬蟲。
通用網絡爬蟲:又稱為全網網絡爬蟲,其在采集數據時,由部分種子URL擴展到整個網絡的全部頁面,主要應用于搜索引擎數據的采集。這類網絡爬蟲的數據采集范圍較廣,數據采集量巨大,對數據采集的速度和存儲空間有較高的要求,通常需要深度遍歷網站的資源。例如,Apache的子項目Nutch便是一個高效的通用網絡爬蟲框架,其使用分布式的方式采集數據。有興趣詳細學習Nutch框架使用的讀者,可參考書籍Web Crawling and Data Mining with Apache Nutch。
聚焦網絡爬蟲:又稱為主題網絡爬蟲,是指選擇性地采集那些與預先定義好的主題相關的頁面。相比于通用網絡爬蟲,聚焦網絡爬蟲采集的網頁資源少,主要用于滿足特定人群對特定領域信息的需求。在聚焦網絡爬蟲中,需要設計過濾策略,即過濾與所定主題無關的頁面。我們可以將用戶查詢的關鍵詞作為主題,包含該關鍵詞的頁面視為主題相關,如圖1.2所示。

圖1.2 采集關鍵詞相關網頁
增量網絡爬蟲:是指對已下載網頁采取增量式更新,只采集新產生的或者已經發生變化網頁的爬蟲。增量網絡爬蟲能夠在一定程度上保證所爬行的頁面是盡可能新的頁面,歷史已經采集過的頁面不重復采集。增量網絡爬蟲避免了重復采集數據,可以減小時間和空間上的耗費。針對小規模特定網站的數據采集,在設計網絡爬蟲時,可構建一個基于時間戳判斷是否更新的數據庫,通過判斷時間戳的先后,判斷程序是否繼續采集,同時更新數據庫中的時間戳信息。圖1.3為某論壇的帖子的頁面,如果需要每隔一段時間采集最新發布的帖子,便可以通過對比當前時間(如2018年9月25日)和數據庫中封存的上次數據采集的時間(如2018年8月25日),進而確定采集到論壇第幾頁便終止后面頁數的數據采集。

圖1.3 增量網絡爬蟲案例
深度網絡爬蟲:即Deep Web爬蟲,指對大部分內容不能通過靜態鏈接獲取,只有用戶提交表單信息才能獲取Web頁面的爬蟲。
- DevOps with Kubernetes
- Vue.js 2 and Bootstrap 4 Web Development
- Visual C++數字圖像模式識別技術詳解
- .NET 4.0面向對象編程漫談:基礎篇
- C#程序設計教程
- Mastering Ubuntu Server
- Instant QlikView 11 Application Development
- Python高效開發實戰:Django、Tornado、Flask、Twisted(第3版)
- Mastering Google App Engine
- 表哥的Access入門:以Excel視角快速學習數據庫開發(第2版)
- Keras深度學習實戰
- Kivy Cookbook
- Python面試通關寶典
- Python全棧開發:數據分析
- HTML5 Game Development by Example:Beginner's Guide(Second Edition)