亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

OPIC in Nutch

系統 1664 0

? 莊子曾說:“吾生也有涯,而知也無涯,以有涯隨無涯,殆已”。當然,我們不能拿老祖宗這句話作為消極怠工的借口,不過在學習和工作的時候,的確需要要分辨事情的輕重緩急,否則一味蠻干,最終結果只能是--“殆已”。

? 突然發現這句話對于網絡爬蟲也是很有啟發意義的,對于浩瀚無邊的互聯網而言,網絡爬蟲涉及到頁面確實只是冰山一角。因此,如何確定一個頁面的重要性,從而在抓取過程中進行合理的調度,以最小的代價(硬件、帶寬)獲取到最大的利益(數量最多的重要的網頁)是設計網絡爬蟲過程中的一個核心問題。
? 一個頁面是否重要本來是一個比較主觀的問題,見仁見智。但是如果大部分人都認為一個頁面是重要的,那么我們大都會相信眾人的判斷,認為這個頁面的確“重要”的——這就是Google的PageRank算法的核心思想。不過在具體PageRank中,這個判斷的過程是采用網頁間的超鏈接來實現的。PageRank成就了Google的輝煌,自然有它的過人之處,不過PageRank計算對象是所有“已經抓取下來”的網頁,該算法通過這些網頁的相互連接關系以迭代的方式計算出各個網頁的重要性——頁面的PageRank。也就是說,我們在計算PageRank的過程中,是不會有新的頁面加入的,我們將這種計算方式稱為“離線”(off-line)的計算方式。PageRank能夠很好地反應出已有頁面間的相對重要性,因此十分適合于查詢結果的排序。但是,PageRank是一種離線的計算方式,在一次計算過程中不能加入新的頁面,而且計算過程是一個迭代過程,需要較長的計算時間,因此并不適合于網絡爬蟲的URL調度,動態決定URL的抓取順序。
? 針對這個問題,大家提出了很多解決方案[1]。其中,Abiteboul (Abiteboul et al., 2003)[2] 提出了一種基于OPIC (On-line Page Importance Computation)算法的抓取策略.在OPIC中,每一個頁面都有一個初始的"cash” 。在抓取的過程中,這些"cash"將會平均地分配給該頁面指向的頁面,這個分配過程是一次完成的。基于OPIC的網絡爬蟲在抓取過程中將以待抓取頁面累積的"cash"的多少為依據,優先抓取"cash"數量最多的頁面。OPIC算法如下所示,其中C[i]表示頁面i當前的Cash,H[i]表示在計算過程中頁面i累計收到的cash的總數。

?? ?

    OPIC:
On-line Page Importance Computation

for each i let C[i] := 1/n ;
for each i let H[i] := 0 ;
let G:=0 ;
do forever
begin
 choose some node i ;
 %% each node is selected
 %% infinitely often

 H[i] += C[i];
 %% single disk access per page

 for each child j of i,
 do C[j] += C[i]/out[i];
 %% Distribution of cash
 %% depends on L

 G += C[i];
 C[i] := 0 ;
end
  

?

? Nutch使用了OPIC作為默認的URL調度策略,但是當前版本(0.9)的OPIC實現與Abiteboul在論文提出的OPIC并不完全相同,具體表現為:

? 1. Nutch中并沒有區分C[i]和H[i],使用score一個變量記錄頁面累積的分數,在分配過程中也是將這個累積的分數全部平均分配給子頁面,分配完畢后分數也并不清零。

? 2. Nutch中并沒有virtual root page,也就是說葉子頁面(即沒有outlink的頁面)的分數將會丟失。?

?

? Nutch分數計算功能是通過插件的形式提供的,用戶可以通過新增插件的方式改變Nutch積分方式。Nutch提供了一個計算分數的接口 ScoringFilter,完成計算分數功能的類通過實現該接口以影響Nutch分數的計算方式,其默認的OPIC分數計算方法由類 OPICScoringFilter 提供。此外,參與計算分數的類還有 ScoringFilters,ParseOutputFormat。其中 ScoringFilters 負責將各個計分插件加載到系統中,并實現鏈式計分的過程;而ParseOutputFormat 在解析結果輸出之前,將頁面的分數分配到該頁面的各個子頁面中,使得Nutch的更新模塊可以使用這些數據更新CrawlDB數據庫。

? 為了能夠形象地展示Nutch的URL調度過程,我構建了一個微型的站點,站點只包含了五張網頁,其拓撲結構如下圖所示。

?

?

?

? 下面表格展示了Nutch的抓取流程,表格中,每一行中被粗體標注數字對應的URL為被調度器選中的URL,將在下一輪被抓取;“*”表示該網頁已被抓取;“--”表示該網頁尚未被系統獲知。

?

?

A

B

C

D

E

0 injected

1.0

--

--

--

--

1

1.0*

0.5

0.5

--

--

2

1.0*

0.5*

0.5

0.25

0.25

3

1.0*

0.5*

0.5*

0.25

0.75

4

1.0*

1.25*

0.5*

0.25

0.75*

5

1.0*

1.25*

0.5*

0.25*

0.75*

?

? 其實社區中也注意到Nutch在實現OPIC上的問題,也提出了自己的解決方案,具體的內容可以參考Nutch官方wiki上FixingOpicScoring[3]一文。

?

Reference
[1] Abiteboul et al. , 2003? http://www2003.org/cdrom/papers/refereed/p007/p7-abiteboul.html
[2] Baeza-Yates, R., Castillo, C., Marin, M. and Rodriguez, A. (2005). Crawling a Country: Better Strategies than Breadth-First for Web Page Ordering . In Proceedings of the Industrial and Practical Experience track of the 14th conference on World Wide Web, pages 864–872, Chiba, Japan. ACM Press.
[3] Fixing the OPIC algorithm in Nutch?? http://wiki.apache.org/nutch/FixingOpicScoring

?

OPIC in Nutch


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99视频精品免费99在线 | 成年人一级毛片 | 精品91精品91精品国产片 | 九九视频在线观看视频 | 精品国产国产综合精品 | 日本中文字幕一区二区 | 久久99久久99精品观看 | 亚洲精品国产精品一区二区 | 夜夜躁日日躁狠狠久久 | 色婷婷777| 99视频在线观看视频一区 | 四虎影视永久地址www成人 | 一级一级一级毛片 | 俄罗斯三级毛片 | 99在线精品免费视频九九视 | 欧美极品福利视频在线播放 | 国产丝袜啪啪 | a视频在线播放 | 天天碰天天摸天天操 | 亚洲欧美综合国产不卡 | 国产在线观看中文字幕 | 色综合一区 | 性欧美视频在线观看 | 婷婷性 | 午夜伦情电午夜伦情影院 | 国产91在线九色 | 玖玖国产 | 爱爱小视频在线观看网站 | 天天爱天天做天天爽天天躁 | 精品视频一区二区三区在线播放 | 欧美精品亚洲精品日韩经典 | 亚洲高清免费 | 四虎影院国产精品 | 五月天 亚洲 | 久久久久久久久久久观看 | 热灸灸这里只有精品 | 欧美xxxx8888视频 | 久草手机在线观看 | 97se亚洲国产综合自在线观看 | 欧美日韩一区二区在线观看 | 中文字幕在线亚洲精品 |