- Python網絡爬蟲技術與應用
- 鄧維等主編
- 1901字
- 2023-08-25 12:18:43
1.1 網絡爬蟲簡介
1.1.1 網絡爬蟲的概念與類別
1.概念
當前社會已經邁入大數據時代,互聯網中的數據是海量的,如何自動高效地獲取互聯網中有用的信息是一個重要問題,而網絡爬蟲技術就是為解決這些問題而生的。
當下的網絡就像一張大型的蜘蛛網,分布于蜘蛛網各個節點的即是數據,那么Web Crawler(網絡爬蟲)即是小蜘蛛,沿著網絡“捕獲”食物(即數據),而網絡爬蟲是指按照一定的規則,自動地抓取網絡信息的程序或者腳本。從專業角度來講,請求目標的行為是經由程序模仿搜索引擎發出的,爬到本地的是目標返回的HTML代碼、JSON數據、二進制數據、圖片、視頻等,從中提取需要的數據并存儲起來使用。
2.常見的網絡爬蟲
搜索引擎如何獲得一個新網站的URL?主要描述如下:
(1)主動向搜索引擎提交網站。
(2)在其網站里設置外聯。
(3)搜索引擎會和DNS服務商進行合作,能夠快速采集新的網站。
常見的網絡爬蟲有以下幾種。
· 通用網絡爬蟲:也叫全網爬蟲,主要為門戶網站站點搜索引擎和大型Web服務提供商采集網絡數據。
通用網絡爬蟲并不是一切皆可爬取,它也要遵循Robots協議。通用網絡爬蟲的工作流程為:抓取網頁→存儲數據→內容處理→提供檢索→排名服務。
通用網絡爬蟲的缺點有:僅提供與文本相關的內容(如HTML、Word、PDF等),而無法提供多媒體文件(如音樂、圖片、視頻)和二進制文件,提供的結果一成不變,無法針對不同背景領域的人提供不同的搜索結果,不能提供人類語義上的檢索;具有局限性,所返回的網頁里90%的內容無用,中文搜索引擎的自然語言檢索理解困難,信息占有量和覆蓋率存在局限,以關鍵字搜索為主是搜索引擎最主要的作用之一,對于圖片、數據庫、音頻、視頻多媒體的內容無計可施;搜索引擎的社區化和個性化欠缺,大多數搜索引擎無法考慮人的地域、性別、年齡的差別,且抓取動態網頁效果不好。
· 聚焦網絡爬蟲:網絡爬蟲程序員寫的針對某種內容的網絡爬蟲,面向主題網絡爬蟲、面向需求網絡爬蟲,會針對某種特定的內容去抓取信息,并且保證內容需求盡可能相關。聚焦網絡爬蟲是為解決通用網絡爬蟲的缺點而出現的。
· 積累式網絡爬蟲:從頭到尾,不斷抓取,過程中會進行反復操作。
· 增量式網絡爬蟲:采用增量式更新和僅抓取新產生的或者已經發生變化的網頁的網絡爬蟲,出現在已下載的網頁。
· 深層網絡爬蟲:Web頁面按存在方式可以分為表層網頁(Surface Web)和深層網頁(Deep Web)。表層網頁是指傳統搜索引擎可以索引的頁面,以超鏈接可以到達的靜態網頁為主構成的Web頁面。深層網頁是指那些大部分內容不能通過靜態鏈接獲取的、隱藏在搜索表單后的,只有用戶提交一些關鍵詞才能獲得的Web頁面。
3.增量式網絡爬蟲
增量式網絡爬蟲(Incremental Web Crawler)的體系結構包括爬行模塊、排序模塊、更新模塊、本地頁面集、待爬行URL集及本地頁面URL集。
增量式網絡爬蟲為確保本地頁面集中存儲的頁面是最新頁面并進一步提高本地頁面集中頁面的質量,經常使用的方法有:
(1)統一更新法:網絡爬蟲以相同的頻率訪問全部網頁,不考慮網頁的改變頻率。
(2)個體更新法:網絡爬蟲按照個體網頁的改變的頻率重新訪問各頁面。
(3)基于分類的更新法:網絡爬蟲根據網頁改變的頻率把頁面劃分為更新較快網頁子集和更新較慢網頁子集兩類,而后以不同的頻率訪問這兩類網頁。
為實現個體更新法,增量式網絡爬蟲需要對網頁的重要性排序,一般常用的策略有廣度優先策略、PageRank優先策略等。IBM開發的WebFountain增量式網絡爬蟲功能強大,它采用一個優化模型控制爬行過程,并沒有對頁面變動過程做一概統計假設,而是按照先前爬行周期里的爬行成果和網頁的實際變化速度對頁面的更新頻率進行調整,采用的是一種自適應的方法。北京大學的天網增量爬行系統的目的是爬行國內Web,把網頁劃分為變化網頁和新網頁兩類,分別采用不同爬行策略。為減緩對大量網頁變化歷史維護導致的性能難題,它按照網頁變化的時間局部性規律,在短時期內直接爬行屢次變化的網頁,為盡快取得新網頁,它操縱索引型網頁追蹤新出現的網頁。
4.深層網絡爬蟲
1)基于領域知識的表單填寫
此方式一般會維持一個本體庫,經由語義分析來選取合適的關鍵詞填寫表單。利用一個預定義的領域本體知識庫來識別深層網頁的頁面內容,同時利用一些來自Web站點的導航模式來辨認主動填寫表單時所需進行的路徑導航。
2)基于網頁結構分析的表單填寫
此方式通常無領域知識或有唯一有限的領域知識,把網頁表單表示成DOM樹,從中提取表單各字段值。Desouky等提出一種LEHW方法。該方法把HTML網頁表示為DOM樹形式,把表單區分為單屬性表單和多屬性表單,分別進行處理;孫彬等提出一種基于XQuery的搜索系統,它能夠模擬表單和特殊頁面的標記切換,把網頁關鍵字切換信息描述為三元組單元,依照一定規則排除無效表單,把Web文檔構造成DOM樹,利用XQuery把文字屬性映射到表單字段。