如何将Mechanize中的相对链接转换为绝对链接?

时间:2013-08-03 21:29:29

标签: ruby hyperlink mechanize relative absolute

是否有办法将Mechanize relative-link对象转换为包含绝对URL的另一个对象。

Mechanize必须知道绝对链接,因为我也可以在相对链接上调用click方法。

3 个答案:

答案 0 :(得分:21)

您可以将页面uri(总是绝对的)与链接uri合并:

page.uri.merge link.uri

答案 1 :(得分:0)

这不是特定于Mechanize,但一种简单的方法是使用<base>标记中的基本URL并将其添加到相关URL以用于您想要的任何目的。这通常有效。

但是,我不确定你是否可以调用click方法,因为我不熟悉Mechanize。

答案 2 :(得分:0)

您也可以使用 resolve

示例:

require 'mechanize'
agent = Mechanize.new

page = agent.get(url)

some_rel_url = '/something'

url = agent.resolve(some_rel_url)

请记住,提供的其他答案并没有考虑到获取基本网址的所有可能性,如here

基本上是这样:

Image from that link