【问题标题】:How can I convert a relative link in Mechanize to an absolute one?如何将 Mechanize 中的相对链接转换为绝对链接?
【发布时间】:2013-08-04 22:34:54
【问题描述】:

有没有办法将 Mechanize 相对链接对象转换为另一个包含绝对 URL 的对象。

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

【问题讨论】:

    标签: ruby hyperlink mechanize absolute-path relative-url


    【解决方案1】:

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

    但是,我不确定您是否可以为此调用 click 方法,因为我不太了解 Mechanize。

    【讨论】:

      【解决方案2】:

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

      page.uri.merge link.uri
      

      【讨论】:

        【解决方案3】:

        你也可以使用resolve

        例子:

        require 'mechanize'
        agent = Mechanize.new
        
        page = agent.get(url)
        
        some_rel_url = '/something'
        
        url = agent.resolve(some_rel_url)
        

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

        基本上是这样的:

        【讨论】:

          猜你喜欢
          • 2010-10-07
          • 2015-01-13
          • 2019-04-04
          • 1970-01-01
          • 2021-11-29
          • 2011-04-19
          • 1970-01-01
          • 2012-04-02
          • 1970-01-01
          相关资源
          最近更新 更多