2015-06-05 73 views
0

沒有線索在這一個..它的代理怪異,我想要的反應是把終端,而不是文件..但我從來沒有要求的結果被提出終點站。奇怪..我怎樣才能從Mechanize/Nokogiri打印到文件中得到結果?機械化和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) 
+0

嘛。 。我想到了..doc.inspect是以某種方式將結果發送到終端..不知道爲什麼,但是我把它寫出來並寫到一個文件中,而現在一切都是潔淨的..都很好。 – ToddT

+0

'inspect'不適用於輸出到文件。這是一個調試工具,它的輸出很容易改變。相反,爲該對象創建一個「to_s」方法,使其適用於您的輸出,並將其用於輸出。在Nokogiri的情況下,使用'to_html'或'to_xml'將DOM重新渲染爲標準輸出。 –

回答

0

正如所說的鐵皮人,檢查是一個調試工具,所以它寫入STDERR。在Unix環境中,你可以在錯誤日誌重定向到一個文件通過以下方式:

重寫輸出文件:

$ ruby script.rb 2> output_file 

追加STDERR數據TH eoutput文件:

$ ruby script.rb 2>> output_file 
相關問題