2012-04-22 31 views
3

我正在尋找一種方法來查找域中的所有網頁和子域。例如,在uoregon.edu域中,我想查找該域中和所有子域中的所有網頁(例如,cs.uoregon.edu)。找到域中的所有網頁及其子域

我一直在看nutch,我認爲它可以完成這項工作。但是,nutch似乎下載了整個網頁並將它們編入索引以備後續搜索。但是,我想要一個只能掃描網頁中屬於同一個域的URL的抓取工具。此外,nutch似乎將linkdb保存爲序列化格式。我如何閱讀它?我嘗試了solr,它可以讀取nutch收集的數據。但是,我不認爲我需要solr,因爲我沒有執行任何搜索。我需要的只是屬於給定域的URL。

謝謝

+0

您可以使用http://www.crawlmysite.in – Tushar 2014-07-09 13:33:53

回答

4

如果你對紅寶石很熟悉,可以考慮使用海葵。精彩的爬行框架。以下是可用的代碼示例。

require 'anemone' 

urls = [] 

Anemone.crawl(site_url) 
    anemone.on_every_page do |page| 
    urls << page.url 
    end 
end 

https://github.com/chriskite/anemone

免責聲明:您需要使用補丁從問題爬子域,你可能要考慮增加一個最大頁數。

+0

我曾嘗試過海葵,至少對於它在尋找所有內容方面做得很好。我還沒有嘗試過子域名。謝謝。 – gmemon 2012-04-23 01:33:53

+0

這裏是子域名的直接鏈接:https://github.com/chriskite/anemone/issues/18 此外,考慮標記我的帖子作爲答案,如果它已經幫助你,讓未來的人會看到這確實是一個解決他們的問題。 – sunnyrjuneja 2012-04-23 02:07:19

0

查找給定域的所有子域的最簡單方法是要求相關站點的DNS管理員爲您提供DNS Zone Transfer或其區域文件;如果該區域中有任何wildcard DNS entries,則還必須獲得對通配符DNS條目上的請求作出響應的服務器的配置(以及可能的代碼)。不要忘記,部分域名空間可能由其他DNS服務器處理 - 你必須從它們中獲取數據。

這特別複雜,因爲HTTP服務器可能會有不同的處理請求,以處理不同的名稱到其服務器配置文件中,或運行服務器的應用程序代碼,或者運行服務器的應用程序代碼可能會執行數據庫查找來確定與名字有關。 FTP不提供基於名稱的虛擬主機,並且您感興趣的任何其他服務可能會或可能不會提供基於名稱的虛擬主機協議。

相關問題