2015-06-21 96 views
0

作为一项任务的一部分,我试图获取网页上的所有链接和子域名。一个例子是对“www.stanford.edu”返回的"www.stanford.edu/admissions"哈希,"www.stanford.edu/academics""cs.stanford.edu"有没有办法获得域名的网站地图?

我找到了与机械化和SPIDR宝石要做到这一点,如“Create dynamic sitemap from URL with Ruby on Rails”为例进行“How can I get all links of a website using the Mechanize gem?” 。

但是,借助这些宝石,我只能通过单击网页上的所有链接,访问这些链接,然后单击这些子页面上的链接以获得站点地图,直到获得站点地图。这是非常低效和缓慢的,因为大多数时候,像广告这样的网页上存在链接,而这些链接不属于该域的一部分。这些不相关的页面最终也位于站点地图数组/散列中。

有没有办法得到一个网页的站点地图?我也接受非Ruby解决方案。

+0

不要使用“点击这里”作为锚文本。提供一些有关您要链接到的页面的有用信息。 –

+0

如果有[站点地图文件](https://en.wikipedia.org/wiki/Sitemaps),您可以尝试。如果有的话,你不会得到一个真正的网站地图,只有所有者想分享的站点地图。但这可能是一个开始。 – knut

回答

1

我不认为这是可能比其他通过以下链接(尽管可以使用机械化自动化)。服务器可以创建一个动态页面并在任意子域下提供它。除了询问服务器之外,您无法获得该信息。事实上,即使遵循所有链接,您也无法获得所有子域名。

+0

非常感谢您回答详细!只是想确定一下,你认为这个答案对所有的编程语言/工具都有效,或者你知道是否有一种非Ruby的方式来获得一个没有链接的站点地图? – bumudur

+0

这是独立于编程语言,因为你应该知道,如果你正确理解我的答案。 – sawa

相关问题