如何获得PP在ruby中显示的结果

时间:2014-04-08 21:21:47

标签: ruby mechanize

我有一个对象,使用PP打印后显示如下

#<Mechanize::Page
  {url
  #<URI::HTTPS:0x3391b60        URL:https://www.something.com/som/postauthentication/postAuthentication.seam?  cid=7375310001974>}
 {meta_refresh}
 {title "some"}
 {iframes}
 {frames}
 {links
 #<Mechanize::Page::Link

如何在字符串中获取URL?

2 个答案:

答案 0 :(得分:1)

以下是一些我认为可以使用您所遵循的方向解决问题的代码:

require 'pp'
require 'mechanize'

a = Mechanize.new 
a.get('http://google.com')
string = PP.pp(a.page, "")
# puts "string #{string}"

if string =~ /URL:(http:.*)}/
  puts "URL: #{$1}"
else
  puts "Didn't find URL"
end

但@pguardiariois的以下答案是一个更好的解决方案 - 您只需要a.page.uri

答案 1 :(得分:1)

这是一个Mechanize :: Page对象,例如:

page.uri.to_s