【发布时间】:2015-06-21 05:33:17
【问题描述】:
作为作业的一部分,我正在尝试获取网页上的所有链接和子域。例如,“www.stanford.edu”返回 "www.stanford.edu/admissions"、"www.stanford.edu/academics"、"cs.stanford.edu" 等的哈希值。
我找到了使用 Mechanize 和 Spidr gem 的方法,例如“Create dynamic sitemap from URL with Ruby on Rails”和“How can I get all links of a website using the Mechanize gem?”。
但是,使用这些 gem,我只能通过单击网页上的所有链接、访问这些链接,然后也单击这些子页面上的链接来获取站点地图,直到获得站点地图。这是一个非常低效且缓慢的方法,因为大多数时候页面上都有链接,例如广告,它们不属于域。这些不相关的页面最终也会出现在站点地图数组/哈希中。
有没有办法获取网页的站点地图?我也对非 Ruby 解决方案持开放态度。
【问题讨论】:
-
不要使用“这里”作为锚文本。提供有关您要链接到的页面的一些有用信息。
-
有Sitemap-file的可以试试。如果有,您不会得到真正的站点地图,只有所有者想要共享的站点地图。但这可能是一个开始。
标签: ruby-on-rails ruby web-crawler mechanize sitemap