简单了解Python网络爬虫
網絡爬蟲(又被稱為網頁蜘蛛,網絡機器人),是一種按照一定的規則,自動的抓取信息的程序或者腳本。
網絡爬蟲是互聯網上進行信息采集的通用手段,在互聯網的各個專業方向上都是不可或缺的底層技術支撐。本課程從爬蟲基礎開始,全面介紹了Python網絡爬蟲技術,并且包含各種經典的網絡爬蟲項目案例。
詳細課程:Python網絡爬蟲實戰
分類:
網絡爬蟲按照系統結構和實現技術,大致可以分為以下幾種類型:通用網絡爬蟲(General Purpose Web Crawler)、聚焦網絡爬蟲(Focused Web Crawler)、增量式網絡爬蟲(Incremental Web Crawler)、深層網絡爬蟲(Deep Web Crawler)。 實際的網絡爬蟲系統通常是幾種爬蟲技術相結合實現的。
- 通用網絡爬蟲
通用網絡爬蟲又稱全網爬蟲(Scalable Web Crawler),爬行對象從一些種子 URL 擴充到整個 Web,主要為門戶站點搜索引擎和大型 Web 服務提供商采集數據。 由于商業原因,它們的技術細節很少公布出來。 這類網絡爬蟲的爬行范圍和數量巨大,對于爬行速度和存儲空間要求較高,對于爬行頁面的順序要求相對較低,同時由于待刷新的頁面太多,通常采用并行工作方式,但需要較長時間才能刷新一次頁面。 雖然存在一定缺陷,通用網絡爬蟲適用于為搜索引擎搜索廣泛的主題,有較強的應用價值。
通用網絡爬蟲的結構大致可以分為頁面爬行模塊 、頁面分析模塊、鏈接過濾模塊、頁面數據庫、URL 隊列、初始 URL 集合幾個部分。為提高工作效率,通用網絡爬蟲會采取一定的爬行策略。 常用的爬行策略有:深度優先策略、廣度優先策略。
- 聚焦網絡爬蟲
聚焦網絡爬蟲(Focused Crawler),又稱主題網絡爬蟲(Topical Crawler),是指選擇性地爬行那些與預先定義好的主題相關頁面的網絡爬蟲[8]。 和通用網絡爬蟲相比,聚焦爬蟲只需要爬行與主題相關的頁面,極大地節省了硬件和網絡資源,保存的頁面也由于數量少而更新快,還可以很好地滿足一些特定人群對特定領域信息的需求。
聚焦網絡爬蟲和通用網絡爬蟲相比,增加了鏈接評價模塊以及內容評價模塊。聚焦爬蟲爬行策略實現的關鍵是評價頁面內容和鏈接的重要性,不同的方法計算出的重要性不同,由此導致鏈接的訪問順序也不同。
- 增量式網絡爬蟲
增量式網絡爬蟲(Incremental Web Crawler)是 指 對 已 下 載 網 頁 采 取 增 量式更新和只爬行新產生的或者已經發生變化網頁的爬蟲,它能夠在一定程度上保證所爬行的頁面是盡可能新的頁面。 和周期性爬行和刷新頁面的網絡爬蟲相比,增量式爬蟲只會在需要的時候爬行新產生或發生更新的頁面 ,并不重新下載沒有發生變化的頁面,可有效減少數據下載量,及時更新已爬行的網頁,減小時間和空間上的耗費,但是增加了爬行算法的復雜度和實現難度。增量式網絡爬蟲的體系結構[包含爬行模塊、排序模塊、更新模塊、本地頁面集、待爬行 URL 集以及本地頁面URL 集。
增量式爬蟲有兩個目標:保持本地頁面集中存儲的頁面為最新頁面和提高本地頁面集中頁面的質量。 為實現第一個目標,增量式爬蟲需要通過重新訪問網頁來更新本地頁面集中頁面內容,常用的方法有:
為實現第二個目標,增量式爬蟲需要對網頁的重要性排序,常用的策略有:廣度優先策略、PageRank 優先策略等。IBM 開發的 WebFountain是一個功能強大的增量式網絡爬蟲,它采用一個優化模型控制爬行過程,并沒有對頁面變化過程做任何統計假設,而是采用一種自適應的方法根據先前爬行周期里爬行結果和網頁實際變化速度對頁面更新頻率進行調整。北京大學的天網增量爬行系統旨在爬行國內 Web,將網頁分為變化網頁和新網頁兩類,分別采用不同爬行策略。 為緩解對大量網頁變化歷史維護導致的性能瓶頸,它根據網頁變化時間局部性規律,在短時期內直接爬行多次變化的網頁 ,為盡快獲取新網頁,它利用索引型網頁跟蹤新出現網頁。
- Deep Web 爬蟲
Web 頁面按存在方式可以分為表層網頁(Surface Web)和深層網頁(Deep Web,也稱 Invisible Web Pages 或 Hidden Web)。 表層網頁是指傳統搜索引擎可以索引的頁面,以超鏈接可以到達的靜態網頁為主構成的 Web 頁面。Deep Web 是那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲得的 Web 頁面。例如那些用戶注冊后內容才可見的網頁就屬于 Deep Web。 2000 年 Bright Planet 指出:Deep Web 中可訪問信息容量是 Surface Web 的幾百倍,是互聯網上最大、發展最快的新型信息資源。
Deep Web 爬蟲體系結構包含六個基本功能模塊 (爬行控制器、解析器、表單分析器、表單處理器、響應分析器、LVS 控制器)和兩個爬蟲內部數據結構(URL 列表、LVS 表)。 其中 LVS(Label Value Set)表示標簽/數值集合,用來表示填充表單的數據源。
Deep Web 爬蟲爬行過程中最重要部分就是表單填寫,包含兩種類型:
Raghavan 等人提出的 HIWE 系統中,爬行管理器負責管理整個爬行過程,分析下載的頁面,將包含表單的頁面提交表單處理器先從頁面中提取表單,從預先準備好的數據集中選擇數據自動填充并提交表單,由爬行控制器下載相應的結果頁面。
更多精品課程:
阿里云大學官網(阿里云大學 - 官方網站,云生態下的創新人才工場)
轉載于:https://juejin.im/post/5cce9fddf265da036023c2e7
總結
以上是生活随笔為你收集整理的简单了解Python网络爬虫的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3、java基础:抽象类与接口的区别
- 下一篇: websocket python爬虫_p