Mechanize Nokogiri HTML DOM. Nokogiri, XPath, CSS-, .
URL- Nokogiri:
require 'nokogiri'
html = <<EOT
<html>
<head>
<meta http-equiv="refresh" content="2;url=http://www.example.com/">
</meta>
</head>
<body>
foo
</body>
</html>
EOT
doc = Nokogiri::HTML(html)
redirect_url = doc.at('meta[http-equiv="refresh"]')['content'][/url=(.+)/, 1]
redirect_url # => "http://www.example.com/"
doc.at('meta[http-equiv="refresh"]')['content'][/url=(.+)/, 1] : (at) CSS <meta> http-equiv refresh. content , url=.
Mechanize . , :
agent = Mechanize.new
page = agent.get('http://www.examples.com/')
redirect_url = page.parser.at('meta[http-equiv="refresh"]')['content'][/url=(.+)/, 1]
page = agent.get(redirect_url)
EDIT: at('META[HTTP-EQUIV=\"Refresh\"]')
at(). , . , , , , , . Nokogiri , <meta http-equiv=\"Refresh\"...>.
EDIT: Mechanize , :
agent.follow_meta_refresh = true
. :
parse (content, uri)
URL- . Parse , uri URL-, URL- . , url . nil, URL .
uri = URI.parse('http://current.com/')
Meta.parse("5;url=http://example.com/", uri)
Meta.parse("5;url=", uri)
Meta.parse("5", uri)
Meta.parse("invalid content", uri)