Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Ruby Mechanize获得一个存在于字符串中的页面_Ruby_Nokogiri_Mechanize_Mechanize Ruby - Fatal编程技术网

如何让Ruby Mechanize获得一个存在于字符串中的页面

如何让Ruby Mechanize获得一个存在于字符串中的页面,ruby,nokogiri,mechanize,mechanize-ruby,Ruby,Nokogiri,Mechanize,Mechanize Ruby,通常,Mechanize将从URL获取网页,get方法的结果是Mechanize::Page对象,从中可以使用许多有用的方法 如果页面位于字符串中,如何获得相同的Mechanize::page对象 require 'mechanize' html = <<END_OF_STRING <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm

通常,Mechanize将从URL获取网页,get方法的结果是Mechanize::Page对象,从中可以使用许多有用的方法

如果页面位于字符串中,如何获得相同的Mechanize::page对象

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 = ...
要求“机械化”

html=Mechanize使用Nokogiri解析html。如果您在不需要internet传输协议的情况下访问HTML,则不需要Mechanize。您所要做的就是解析输入的HTML,对吗

以下内容将允许您执行此操作:

require 'Nokogiri'
html = 'html here'
page = Nokogiri::HTML html
如果你已经安装了Mechanize gem,你就已经有了Nokogiri

否则,您仍然可以使用以下方法创建新的Mechanize页面:

require 'Mechanize'
html = 'html here'
a = Mechanize.new
page2 = Mechanize::Page.new(nil,{'content-type'=>'text/html'},html,nil,a)