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