ruby – 机械化如何获取当前网址

前端之家收集整理的这篇文章主要介绍了ruby – 机械化如何获取当前网址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个代码
  1. require 'mechanize'
  2. @agent = Mechanize.new
  3. page = @agent.get('http://something.com/?page=1')
  4. next_page = page.link_with(:href=>/^?page=2/).click

正如你可以看到这个代码应该去下一页.

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

如何获取next_page的当前网址?

解决方法

  1. next_page.uri.to_s

应该是你要找的

你可以在http://mechanize.rubyforge.org/Mechanize/Page/Link.html找到这个

为了测试目的,我在irb中进行了以下操作:

  1. require 'mechanize'
  2. @agent = Mechanize.new
  3.  
  4. page = @agent.get('http://news.ycombinator.com/news')
  5. => #<Mechanize::Page
  6. {url #<URI::HTTP:0x00000001ad3198 URL:http://news.ycombinator.com/news>}
  7. {Meta_refresh}
  8. {title "Hacker News"}
  9. {iframes}
  10. {frames}
  11. {links
  12. #<Mechanize::Page::Link "" "http://ycombinator.com">
  13. #<Mechanize::Page::Link "Hacker News" "news">
  14. #<Mechanize::Page::Link "new" "newest">
  15. #<Mechanize::Page::Link "comments" "newcomments">
  16. #<Mechanize::Page::Link "ask" "ask">
  17. #<Mechanize::Page::Link "jobs" "jobs">
  18. #<Mechanize::Page::Link "submit" "submit">
  19. #<Mechanize::Page::Link "login" "newslogin?whence=%6e%65%77%73">
  20. #<Mechanize::Page::Link "" "vote?for=3803568&dir=up&whence=%6e%65%77%73">
  21. #<Mechanize::Page::Link
  22. "Don’t Be Evil: How Google Screwed a Startup"
  23. "http://blog.hatchlings.com/post/20171171127/dont-be-evil-how-google-screwed-a-startup">
  24. #<Mechanize::Page::Link "mikeknoop" "user?id=mikeknoop">
  25. #<Mechanize::Page::Link "64 comments" "item?id=3803568">
  26. #<Mechanize::Page::Link "" "vote?for=3802515&dir=up&whence=%6e%65%77%73">
  27. # Omitted for brevity...
  28.  
  29. next_page.uri
  30. => #<URI::HTTP:0x00000001fa7818 URL:http://news.ycombinator.com/news2>
  31.  
  32. next_page.uri.to_s
  33. => "http://news.ycombinator.com/news2"

猜你在找的Ruby相关文章