查找域及其子域中的所有网页

时间:2012-04-22 23:01:41

标签: url solr web-crawler nutch

我正在寻找一种方法来查找域中的所有网页和子域。例如,在uoregon.edu域中,我想查找此域和所有子域中的所有网页(例如,cs.uoregon.edu)。

我一直在看着荷兰人,我认为它可以做到这一点。但是,似乎nutch下载整个网页并将其编入索引以供以后搜索。但是,我想要一个仅在网页上扫描属于同一域的URL的爬虫。此外,似乎nutch以序列化格式保存linkdb。我怎么读呢?我尝试过solr,它可以读取nutch收集的数据。但是,我不认为我需要solr,因为我没有进行任何搜索。我只需要属于给定域的URL。

由于

2 个答案:

答案 0 :(得分:4)

如果您熟悉红宝石,请考虑使用海葵。精彩的爬行框架。以下是开箱即用的示例代码。

require 'anemone'

urls = []

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

https://github.com/chriskite/anemone

免责声明:您需要使用问题中的补丁来抓取子域,并且您可能需要考虑添加最大页数。

答案 1 :(得分:0)

查找给定域的所有子域的最简单方法是要求相关网站的DNS管理员为您提供DNS Zone Transfer或其区域文件;如果区域中有任何wildcard DNS entries,您还必须获取响应通配符DNS条目请求的服务器的配置(以及可能的代码)。不要忘记域名空间的某些部分可能由其他DNS服务器处理 - 您必须从中获取所有数据。

这尤其复杂,因为HTTP服务器可能对发送到服务器配置文件中的不同名称或运行服务器的应用程序代码的请求有不同的处理,或者运行服务器的应用程序代码可能执行数据库查找以确定要执行的操作用给定的名字做。 FTP不提供基于名称的虚拟主机,而您感兴趣的其他任何服务可能会也可能不会提供基于名称的虚拟主机协议。