㈠ 求網路爬蟲參考文獻
主題網路爬蟲研究綜述
摘要: 首先給出了主題網路爬蟲的定義和研究目標; 然後系統分析了近年來國內外主題爬蟲的研究方法和技
術, 包括基於文字內容的方法、基於超鏈分析的方法、基於分類器預測的方法以及其他主題爬行方法, 並比較了
各種方法優缺點; 最後對未來的研究方向進行了展望。
關鍵詞: 主題網路爬蟲; 信息檢索; Web 挖掘
中圖分類號: TP391 文 獻標志碼: A 文 章編號: 1001- 3695( 2007) 10- 0026- 04
Survey on topic-focused Web crawler
LIU Jin-hong, LUYu-liang
( Dept. of Network, PLA Electric Engineer Institute, Hefei 230037, China)
Abstract: This paper gave the goal of focused crawling, then comprehensively analyzed the recent advances of the relevant researches
and applications about focused-crawler, included focused crawling methods based on text contents, link analyses』
methods, classifier-guided methods and other focused methods. Finally pointed out the future direction of focused crawling.
Key words: topic-focused crawler; information retrieval; Web mining
0 引言
隨著網路上海量信息的爆炸式增長, 通用搜索引擎面臨著
索引規模、更新速度和個性化需求等多方面的挑戰[ 1, 2] 。面對
這些挑戰, 適應特定主題和個性化搜索的主題網路爬蟲( focused
crawler or topical crawler) 應運而生[ 3, 4] 。基於主題網路
爬蟲的搜索引擎( 即第四代搜索引擎) 已經成為當前搜索引擎
和Web 信息挖掘中的一個研究熱點和難點。
通用網路爬蟲的目標就是盡可能多地採集信息頁面, 而在
這一過程中它並不太在意頁面採集的順序和被採集頁面的相
關主題。這需要消耗非常多的系統資源和網路帶寬, 並且對這
些資源的消耗並沒有換來採集頁面的較高利用率。主題網路
爬蟲則是指盡可能快地爬行、採集盡可能多的與預先定義好的
主題相關的網頁。主題網路爬蟲可以通過對整個Web 按主題
分塊採集, 並將不同塊的採集結果整合到一起, 以提高整個
Web 的採集覆蓋率和頁面利用率。
1 主題爬蟲的定義和研究目標
定義1 網路爬蟲是一個自動提取網頁的程序, 它為搜索
引擎從Web 上下載網頁, 是搜索引擎的重要組成部分。通用
網路爬蟲從一個或若干初始網頁的URL 開始, 獲得初始網頁
上的URL 列表; 在抓取網頁的過程中, 不斷從當前頁面上抽取
新的URL 放入待爬行隊列, 直到滿足系統的停止條件。
定義2 主 題網路爬蟲就是根據一定的網頁分析演算法過
濾與主題無關的鏈接, 保留主題相關的鏈接並將其放入待抓取
的URL 隊列中; 然後根據一定的搜索策略從隊列中選擇下一
步要抓取的網頁URL, 並重復上述過程, 直到達到系統的某一
條件時停止。所有被網路爬蟲抓取的網頁將會被系統存儲, 進
行一定的分析、過濾, 並建立索引, 對於主題網路爬蟲來說, 這
一過程所得到的分析結果還可能對後續的抓取過程進行反饋
和指導。
定義3 如果網頁p 中包含超鏈接l, 則p 稱為鏈接l 的父
網頁。
定義4 如果超鏈接l 指向網頁t, 則網頁t 稱為子網頁,
又稱為目標網頁。
主題網路爬蟲的基本思路就是按照事先給出的主題, 分析
超鏈接和已經下載的網頁內容, 預測下一個待抓取的URL 以
及當前網頁的主題相關度, 保證盡可能多地爬行、下載與主題
相關的網頁, 盡可能少地下載無關網頁。相對於通用網路爬
蟲, 主題網路爬蟲需要解決以下四個主要問題:
a) 如何描述或定義感興趣的主題( 即抓取目標) ?
b) 怎樣決定待爬行URL的訪問次序? 許多主題網路爬蟲
根據己下載網頁的相關度, 按照一定原則將相關度進行衰減,
分配給該網頁中的子網頁, 而後將其插入到優先順序隊列中。此
時的爬行次序就不是簡單地以深度優先或廣度優先順序, 而是
按照相關度大小排序, 優先訪問相關度大的URL。不同主題
網路爬蟲之間的區別之一就是如何計算URL的爬行次序。
c) 如何判斷一個網頁是否與主題相關? 對於待爬行或己
下載的網頁可以獲取它的文本內容, 所以可以採用文本挖掘技
術來實現。因此不同主題網路爬蟲間的區別之二就是如何計
算當前爬行網頁的主題相關度。
㈡ 怎麼識別自動化的Web爬蟲
網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在FOAF社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動的抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻,自動索引,模擬程序或者蠕蟲。
基於目標數據模式的爬蟲針對的是網頁上的數據,所抓取的數據一般要符合一定的模式,或者可以轉化或映射為目標數據模式。另一種描述方式是建立目標領域的本體或詞典,用於從語義角度分析不同特徵在某一主題中的重要程度。
網頁爬蟲的高層體系結構
一個爬蟲不能像上面所說的,僅僅只有一個好的抓取策略,還需要有一個高度優化的結構。
Shkapenyuk和Suel(Shkapenyuk和Suel,2002)指出:設計一個短時間內,一秒下載幾個頁面的頗慢的爬蟲是一件很容易的事情,而要設計一個使用幾周可以下載百萬級頁面的高性能的爬蟲,將會在系統設計,I/O和網路效率,健壯性和易用性方面遇到眾多挑戰。
網路爬蟲是搜索引擎的核心,他們演算法和結構上的細節被當作商業機密。當爬蟲的設計發布時,總會有一些為了阻止別人復制工作而缺失的細節。人們也開始關注主要用於阻止主要搜索引擎發布他們的排序演算法的「搜索引擎垃圾郵件」。
爬蟲身份識別
網路爬蟲通過使用http請求的用戶代理(User Agent)欄位來向網路伺服器表明他們的身份。網路管理員則通過檢查網路伺服器的日誌,使用用戶代理欄位來辨認哪一個爬蟲曾經訪問過以及它訪問的頻率。用戶代理欄位可能會包含一個可以讓管理員獲取爬蟲更多信息的URL。郵件抓取器和其他懷有惡意的網路爬蟲通常不會留任何的用戶代理欄位內容,或者他們也會將他們的身份偽裝成瀏覽器或者其他的知名爬蟲。對於網路爬蟲,留下用戶標志信息是十分重要的;這樣,網路管理員在需要的時候就可以聯系爬蟲的主人。有時,爬蟲可能會陷入爬蟲陷阱或者使一個伺服器超負荷,這時,爬蟲主人需要使爬蟲停止。對那些有興趣了解特定爬蟲訪問時間網路管理員來講,用戶標識信息是十分重要的。
㈢ 什麼叫做Web爬蟲
[離散數學是當代數學的一個重要分支,也是計算機科學的數學基礎。它包括數理邏輯、集合論、圖論和近世代數四個分支。數理邏輯基於布爾運算,我們已經介紹過了。這里我們介紹圖論和互聯網自動下載工具網路爬蟲 (Web Crawlers) 之間的關系。順便提一句,我們用 Google Trends 來搜索一下「離散數學」這個詞,可以發現不少有趣的現象。比如,武漢、哈爾濱、合肥和長沙市對這一數學題目最有興趣的城市。]
我們上回談到了如何建立搜索引擎的索引,那麼如何自動下載互聯網所有的網頁呢,它要用到圖論中的遍歷(Traverse) 演算法。
圖論的起源可追溯到大數學家歐拉(Leonhard Euler)。1736 年歐拉來到德國的哥尼斯堡(Konigsberg,大哲學家康德的故鄉,現在是俄羅斯的加里寧格勒),發現當地市民們有一項消遣活動,就是試圖將下圖中的每座橋恰好走過一遍並回到原出發點,從來沒有人成功過。歐拉證明了這件事是不可能的,並寫了一篇論文,一般認為這是圖論的開始。
圖論中所討論的的圖由一些節點和連接這些節點的弧組成。如果我們把中國的城市當成節點,連接城市的國道當成弧,那麼全國的公路干線網就是圖論中所說的圖。關於圖的演算法有很多,但最重要的是圖的遍歷演算法,也就是如何通過弧訪問圖的各個節點。以中國公路網為例,我們從北京出發,看一看北京和哪些城市直接相連,比如說和天津、濟南、石家莊、南京、沈陽、大同直接相連。我們可以依次訪問這些城市,然後我們看看都有哪些城市和這些已經訪問過的城市相連,比如說北戴河、秦皇島與天津相連,青島、煙台和濟南相連,太原、鄭州和石家莊相連等等,我們再一次訪問北戴河這些城市,直到中國所有的城市都訪問過一遍為止。這種圖的遍歷演算法稱為「廣度優先演算法」(BFS),因為它先要盡可能廣地訪問每個節點所直接連接的其他節點。另外還有一種策略是從北京出發,隨便找到下一個要訪問的城市,比如是濟南,然後從濟南出發到下一個城市,比如說南京,再訪問從南京出發的城市,一直走到頭。然後再往回找,看看中間是否有尚未訪問的城市。這種方法叫「深度優先演算法」(DFS),因為它是一條路走到黑。這兩種方法都可以保證訪問到全部的城市。當然,不論採用哪種方法,我們都應該用一個小本本,記錄已經訪問過的城市,以防同一個城市訪問多次或者漏掉哪個城市。
現在我們看看圖論的遍歷演算法和搜索引擎的關系。互聯網其實就是一張大圖,我們可以把每一個網頁當作一個節點,把那些超鏈接(Hyperlinks)當作連接網頁的弧。很多讀者可能已經注意到,網頁中那些藍色的、帶有下劃線的文字背後其實藏著對應的網址,當你點下去的的時候,瀏覽器是通過這些隱含的網址轉到相應的網頁中的。這些隱含在文字背後的網址稱為「超鏈接」。有了超鏈接,我們可以從任何一個網頁出發,用圖的遍歷演算法,自動地訪問到每一個網頁並把它們存起來。完成這個功能的程序叫做網路爬蟲,或者在一些文獻中稱為"機器人" (Robot)。世界上第一個網路爬蟲是由麻省理工學院 (MIT)的學生馬休.格雷(Matthew Gray)在 1993 年寫成的。他給他的程序起了個名字叫「互聯網漫遊者」("www wanderer")。以後的網路爬蟲越寫越復雜,但原理是一樣的。
我們來看看網路爬蟲如何下載整個互聯網。假定我們從一家門戶網站的首頁出發,先下載這個網頁,然後通過分析這個網頁,可以找到藏在它裡面的所有超鏈接,也就等於知道了這家門戶網站首頁所直接連接的全部網頁,諸如雅虎郵件、雅虎財經、雅虎新聞等等。我們接下來訪問、下載並分析這家門戶網站的郵件等網頁,又能找到其他相連的網頁。我們讓計算機不停地做下去,就能下載整個的互聯網。當然,我們也要記載哪個網頁下載過了,以免重復。在網路爬蟲中,我們使用一個稱為「哈希表」(Hash Table)的列表而不是一個記事本紀錄網頁是否下載過的信息。
現在的互聯網非常巨大,不可能通過一台或幾台計算機伺服器就能完成下載任務。比如雅虎公司(Google 沒有公開公布我們的數目,所以我這里舉了雅虎的索引大小為例)宣稱他們索引了 200 億個網頁,假如下載一個網頁需要一秒鍾,下載這 200 億個網頁則需要 634 年。因此,一個商業的網路爬蟲需要有成千上萬個伺服器,並且由快速網路連接起來。如何建立這樣復雜的網路系統,如何協調這些伺服器的任務,就是網路設計和程序設計的藝術了。
㈣ 學習Python爬蟲和Web應該看哪些書籍
看書是基礎,除此之外還有學習路線,該怎麼學習,跟著路線來學的話,更加有效果。
第一階段—Python基礎准備:本階段主要是學習Python零基礎入門學習視頻教程,html+css、javascript、jquery、python編程基礎、python初探等,讓你輕松入門python語言。
第二階段—Python Web開發: 本階段是主要Python開發基礎知識的講解,通過系統學習mysql資料庫、django、ajax、Tornado入門、個人博客系統實戰等相關技術,全面掌握python基礎開發技能技巧。
第三階段—Python擴展開發:本階段Python
開發進階,主要是Python開發實戰講解,針對有一定Python開發基礎學員,從Tkinter桌面編程、Python開發跨平台的記事本、編程實
戰、python爬蟲、論壇項目實戰等方面深入講解,讓學員快速精通python開發語言。
第四階段—Python開發選修:本節階段是Python開發的一個拓展講解,主要是Linux系統、Flask框架、redis框架、node.js框架、html5+css3等相關系統和框架及技術方面的結合使用學習,讓精通python開發的你,技藝更加精湛。
㈤ 爬蟲爬取web網頁,管理員會知道的嗎
軟體?如果是app的話,有點是可以的,通過抓包工具抓包,然後在抓取。
㈥ Java開發網路爬蟲 看什麼書
1,網路機器人Java編程指南,淺顯易懂,有點過時,但適合新手
2,自己動手寫網路爬蟲,有點基礎還可以看看,寫的有點亂,很多內容交代不清楚,並且大篇幅代碼抄襲。。。
3,搜索引擎 ——原理、技術與系統,北大天網為案例,很好很強大,有點學術味道
4,Web數據挖掘 Bing Liu,劉兵的書,強烈推薦
5,搜索引擎:信息檢索實踐,很好的書,強烈推薦
還有一些論文,自己去找吧
案例的話,可以研究下Nutch爬蟲部分代碼,寫的很清晰
有了以上這些,應該算是入門了
㈦ Web網站如何查看搜索引擎蜘蛛爬蟲的行為
查看網站日誌文件就可以了