Ruby on rails 机械化和Nokogiri打印到终端而不是文件

Ruby on rails 机械化和Nokogiri打印到终端而不是文件,ruby-on-rails,ruby,nokogiri,screen-scraping,mechanize-ruby,Ruby On Rails,Ruby,Nokogiri,Screen Scraping,Mechanize Ruby,没有关于这件事的线索。。它的行为很奇怪,我想要的响应是放在终端而不是文件上。。但我从来没有要求把结果送到终点站。古怪的如何将Mechanize/Nokogiri的结果打印到文件中 a = Mechanize.new { |agent| agent.user_agent_alias = 'Mac Safari' } a.set_proxy '64.213.148.50', 8080 a.get('http://www.amazon.com') a.page.forms[0]["field-ke

没有关于这件事的线索。。它的行为很奇怪,我想要的响应是放在终端而不是文件上。。但我从来没有要求把结果送到终点站。古怪的如何将Mechanize/Nokogiri的结果打印到文件中

a = Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
}

a.set_proxy '64.213.148.50', 8080
a.get('http://www.amazon.com')

a.page.forms[0]["field-keywords"] = "B009NWFP5Q"

a.page.forms[0].submit

try = a.page.link_with(:text => "Madden Girl Women's Harmonee Ballet Flat").click

url = a.get(try).body

doc = Nokogiri::HTML(open(url))

result =  doc.inspect

after = "after.txt"

File.write(after, result)

正如铁皮人所说,inspect是一个调试工具,因此它会写入
STDERR
。在Unix环境中,可以通过以下方式将错误日志重定向到文件:

覆盖输出文件:

$ ruby script.rb 2> output_file
$ ruby script.rb 2>> output_file
将STDERR数据附加到输出文件:

$ ruby script.rb 2> output_file
$ ruby script.rb 2>> output_file

好。。我想出来了。。该doc.inspect正在以某种方式将结果发送到终端。。不知道为什么,但我把它拿了出来,写进了一个文件,现在所有的东西都是犹太的。。一切正常。
inspect
不是为输出到文件而设计的。它是一个调试工具,其输出易于更改。相反,为对象创建一个对您的使用有意义的
to_s
方法,并依赖它进行输出。在Nokogiri的例子中,使用
to_html
to_xml
将DOM重新呈现为标准输出。