作为作业的一部分,我试图获取网页上的所有链接和子域。一个例子是“www.stanford.edu”返回 "www.stanford.edu/admissions"
的哈希值。 , "www.stanford.edu/academics"
, "cs.stanford.edu"
等等。
我找到了用 Mechanize 和 Spidr gems 做到这一点的方法,如“Create dynamic sitemap from URL with Ruby on Rails”和“How can I get all links of a website using the Mechanize gem?”所示。
但是,使用这些 gem ,我只能通过单击网页上的所有链接,访问这些链接,然后也单击这些子页面上的链接来获取站点地图,直到获得站点地图。这是一种非常低效且缓慢的方法,因为大多数情况下,页面上的链接(如广告)不属于域的一部分。这些不相关的页面最终也会出现在站点地图数组/哈希中。
有没有办法获取网页的站点地图?我也对非 Ruby 解决方案持开放态度。
最佳答案
我认为除了遵循链接之外是不可能的(尽管这可以使用 Mechanize 实现自动化)。服务器可以创建一个动态页面并在任意子域下提供它。除了询问服务器之外,您无法获得该信息。事实上,即使遵循所有链接,您也无法获得所有子域。
关于ruby-on-rails - 有没有办法获取域的站点地图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961581/