【问题标题】:mechanize how to get current url机械化如何获取当前网址
【发布时间】:2012-04-19 10:08:47
【问题描述】:

我有这个代码

require 'mechanize'
@agent = Mechanize.new
page = @agent.get('http://something.com/?page=1')
next_page = page.link_with(:href=>/^?page=2/).click

如您所见,此代码应转到下一页。

next_page 应该有 url http://something.com/?page=2

如何获取next_page 的当前网址?

【问题讨论】:

    标签: ruby mechanize


    【解决方案1】:
    next_page.uri.to_s 
    

    http://www.rubydoc.info/gems/mechanize/Mechanize/Page/Link#uri-instance_methodhttp://ruby-doc.org/stdlib-2.4.1/libdoc/uri/rdoc/URI.html

    出于测试目的,我在 irb 中做了以下操作:

    require 'mechanize'
    @agent = Mechanize.new
    
    page = @agent.get('http://news.ycombinator.com/news')
    => #<Mechanize::Page
     {url #<URI::HTTP:0x00000001ad3198 URL:http://news.ycombinator.com/news>}
     {meta_refresh}
     {title "Hacker News"}
     {iframes}
     {frames}
     {links
      #<Mechanize::Page::Link "" "http://ycombinator.com">
      #<Mechanize::Page::Link "Hacker News" "news">
      #<Mechanize::Page::Link "new" "newest">
      #<Mechanize::Page::Link "comments" "newcomments">
      #<Mechanize::Page::Link "ask" "ask">
      #<Mechanize::Page::Link "jobs" "jobs">
      #<Mechanize::Page::Link "submit" "submit">
      #<Mechanize::Page::Link "login" "newslogin?whence=%6e%65%77%73">
      #<Mechanize::Page::Link "" "vote?for=3803568&dir=up&whence=%6e%65%77%73">
      #<Mechanize::Page::Link
       "Don’t Be Evil: How Google Screwed a Startup"
       "http://blog.hatchlings.com/post/20171171127/dont-be-evil-how-google-screwed-a-startup">
      #<Mechanize::Page::Link "mikeknoop" "user?id=mikeknoop">
      #<Mechanize::Page::Link "64 comments" "item?id=3803568">
      #<Mechanize::Page::Link "" "vote?for=3802515&dir=up&whence=%6e%65%77%73">
      # Omitted for brevity...
    
    next_page.uri
     => #<URI::HTTP:0x00000001fa7818 URL:http://news.ycombinator.com/news2> 
    
    next_page.uri.to_s
     => "http://news.ycombinator.com/news2" 
    

    【讨论】:

    • 这是链接的 url,但链接后的当前 url(并发生重定向)将是:@agent.page.uri.to_s
    猜你喜欢
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2017-05-03
    相关资源
    最近更新 更多