2011-06-28 70 views
3

我不確定這個問題是否有單一的答案,或者對所有答案都是簡潔的答案,但我認爲我會問的不是那麼少。問題不是語言特定的,但可能有某種僞算法作爲答案。網站中的層次結構

基本上我想了解蜘蛛是如何工作的,並從我可以告訴任何蜘蛛,我發現管理層次。他們只列出內容或鏈接,但沒有排序。

我的問題是這樣的:我們看一個網站,並可以很容易地在視覺上確定哪些鏈接是導航,內容相關或外部網站。 我們如何自動化?我們如何能夠從語法上幫助蜘蛛detemine父母和孩子頁面。

當然,第一個答案是使用URL的目錄結構。 E.g www.stackoverflow.com/questions/spiders 蜘蛛是問題的孩子,問題是基地網站的孩子等等。 但是現在的層次結構通常與URL中引用的id一致。

到目前爲止,我有這個問題的2個答案,並會喜歡一些反饋。

1:發生。

在所有頁面中出現最多的鏈接將被稱爲導航。這似乎是最有前途的設計,但我可以看到動態鏈接和其他問題出現的問題,但它們似乎很小。

2:深度。

示例是我需要點擊某個網站才能訪問某個頁面的次數。這似乎是可行的,但如果某些信息在實際位於最底層的主頁上公佈,它將被確定爲頂層頁面或節點。

所以有沒有人有任何想法或如何使在鏈接蜘蛛法官層次建設性的批評。


(如果有人真的很好奇,蜘蛛的後端部分將最有可能是Ruby on Rails的)

回答

1

什麼是你的目標是什麼?如果您想抓取較少數量的網站併爲某種聚合器提取有用數據,則最好構建專注的抓取工具(爲每個站點撰寫抓取工具)。

如果你想抓取的網頁暢想......嗯比你一定很熟悉了AI的一些先進理念。

您可以從這篇文章http://www-ai.ijs.si/SasoDzeroski/ECEMEAML04/presentations/076-Znidarsic.pdf

+0

開始是的,我不熟悉的AI。絲毫。內部應用程序旨在確定網站中的層次結構。不幸的是,對於尋找應用的人來說,這是非常主觀的。最後,選項是根據你必須經歷的頁面來確定層次結構,才能得到另一個頁面。我認爲這很公平。其他人沒有。在這種情況下構建重點抓取工具是不容置疑的。他們想要一個適合所有爬蟲的尺寸。 – overtone

+0

只是覺得值得一提。即使谷歌有這樣的問題。他們專注於它。 網站層次結構可以從格式正確的URL或bredcrump中提取出來。 但是,即使對於爬蟲preffer http://schema.org/。 他們甚至不會猜測網站上的層次結構是什麼。 – Grzegorz