ruby-on-rails - 有没有办法获取域的站点地图?

标签 ruby-on-rails ruby web-crawler mechanize sitemap

作为作业的一部分,我试图获取网页上的所有链接和子域。一个例子是“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/

相关文章:

ruby-on-rails - 渲染 CSV 发送文件(就像我使用 send_data 一样)而不是渲染文本

ruby-on-rails - Ruby on Rails 链接到表单上的上一页在输入无效后失败

ruby - Ruby 中的 strpos()?

ruby-on-rails - 如果使用 validates_length_of,是否需要 validates_presence_of?

ruby - 在 Ruby 单元测试中模拟缺失的 gem

python - 如何使用 Python Scrapy 模块列出我网站上的所有 URL?

ruby-on-rails - Rails 中的 find_by_sql,访问结果数组

ruby-on-rails - Rails, Has and belongs to many, 匹配所有条件

java - 仅抓取 HTML 页面,同时检查响应 header

Facebook 爬虫机器人崩溃网站