通常,机械化会从URL中获取网页,get方法的结果是一个机械化::页面对象,从中可以使用许多有用的方法。
如果页面位于字符串中,如何获得相同的机械化::页面对象?
require 'mechanize'
html = <<END_OF_STRING
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Page Title</title>
<style type="text/css">
</style>
</head>
<body>
<h1>This is a test</h1>
</body>
</html>
END_OF_STRING
agent = Mechanize.new
# How can I get the page result from the string html?
#page = ...
机械化使用Nokogiri来解析HTML。如果你在不需要互联网传输协议的情况下访问HTML,你就不需要机械化。您所要做的就是解析输入的HTML,对吧?
以下内容可以让您做到这一点:
require 'Nokogiri'
html = 'html here'
page = Nokogiri::HTML html
如果你安装了机械化宝石,你就已经拥有了野宫。
否则,您仍然可以使用创建一个新的机械化页面
require 'Mechanize'
html = 'html here'
a = Mechanize.new
page2 = Mechanize::Page.new(nil,{'content-type'=>'text/html'},html,nil,a)