我正在寻找一种方式来找到所有的网页和子域的域。 例如,在uoregon.edu领域,我想找到在这一领域中的所有网页和所有子域(例如,cs.uoregon.edu)。
我一直在寻找在Nutch的,我认为它可以做的工作。 但是,似乎Nutch的下载整个网页和索引,以便日后搜索。 但是,我想履带只扫描网页对属于同一网域的网址。 此外,似乎Nutch的保存在一个序列化格式linkdb。 我怎么能读呢? 我尝试Solr的,并且它可以读取的Nutch的收集的数据。 但是,我不认为我需要Solr的,因为我没有进行任何搜索。 所有我需要的是属于给定域的URL。
谢谢
如果你熟悉的红宝石,考虑使用海葵。 精彩爬行框架。 下面是开箱的示例代码。
require 'anemone'
urls = []
Anemone.crawl(site_url)
anemone.on_every_page do |page|
urls << page.url
end
end
https://github.com/chriskite/anemone
免责声明:您需要使用补丁从问题爬子域,你可能要考虑增加一个最大页数。
找到一个给定域的所有子域的最简单的方法就是要求网站的DNS管理员的问题,为您提供一个DNS区域传输或他们的区域文件; 如果有任何通配符DNS条目在该区域,你必须也得是对通配符DNS条目请求作出响应的服务器的配置(和潜在的代码 )。 不要忘记,域名空间的部分可能是由其他DNS服务器来处理 - 你必须从所有这些获取数据。
这是特别复杂,因为HTTP服务器可能有不同的处理为烤到自己的服务器配置文件的请求,以不同的名称,或者运行的服务器应用程序代码,或者运行的服务器应用程序代码将执行数据库查询,以确定如何处理做给定的名称。 FTP不提供基于域名的虚拟主机,以及任何其他服务你有兴趣也可以不提供基于域名的虚拟主机方案。