【问题标题】:Get the default webpage file name获取默认网页文件名
【发布时间】:2015-12-15 22:17:08
【问题描述】:

有没有办法在 ruby​​ 中获取给定 url 的默认网页?

我正在寻找类似的功能

get_indexpage_for("www.example.com")

结果等于

'index.html' or 'index.php' or 'index.htm' or ...

即使 HTTP 标头也不包含此信息,我也查看了 Net::HTTP 类,但找不到解决方案。 有人可以帮忙吗?

【问题讨论】:

  • 没有。正如您所发现的,此信息不会在 HTTP 标头中报告,并且没有其他方法可以获取它。你能澄清一下你要解决什么问题吗?
  • 我想获取索引文件来完成给定的相对路径。如果我有例如一个带有 href 属性的链接 '?page=login' 我想完成这个到 'www.example.com/index.php?page=login' 的相对路径。我知道 'www.example.com/?page=login' 是一个有效路径,但包括索引文件在内的整个路径看起来要好得多。

标签: ruby http-headers xmlhttprequest


【解决方案1】:

如果确实有一个可以识别的 url,就会这样做。它在某些页面上就像一个魅力,而不是在其他页面上。

它应该适用于我在示例中使用的 url...

require 'mechanize'
require 'pp'

agent = Mechanize.new

login_url = 'http://www.reports.rtui.com'

page = agent.get(login_url)
puts page.uri

index.html 是标准默认值,但如果您访问 google.com,它们似乎没有索引页面。相反,它运行起来更像一个应用程序,按照它的要求提供内容。

无论如何,我都不是专业人士,但根据我的研究,似乎没有一种灵丹妙药可以满足您的需求。至少,不是一个显而易见的。这真的取决于页面本身。

【讨论】:

  • 谢谢答案,但这对我不起作用。它总是返回我在 login_url 中定义的 url,没有任何文件扩展名。
  • 并不是说它会解决您的问题,但您可能会通过将示例的最后一行更改为“puts page.headers”来获得一些额外信息
  • 就像我在问题中写的那样,我已经尝试从返回的 http-header 中获取信息。但是我测试过的所有网页都不会在其标题中发送此信息。甚至您上面提到的网址也对我不起作用(解决错误)。
猜你喜欢
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 2023-04-07
  • 1970-01-01
相关资源
最近更新 更多