2014-09-13 199 views
0

我对ruby很陌生。我知道如何读/写文件(或者我认为),但是我把nokogiri扔进了混音中,它让我挠了挠头。将Nokogiri输出写入文本文件

require 'nokogiri' 
require 'open-uri' 
url = "URL" 

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

crawl = page.css('.homehlcpm1 > div:nth-child(1) > ul:nth-child(2) > li:nth- child(1)','.homehlcpm1 > div:nth-child(1) > ul:nth-child(2) > li:nth-child(2)','.homehlcpm1 > div:nth-child(1) > ul:nth-child(2) > li:nth-child(3)').each do |el| 
puts el.text 
puts 
end 

所以,一切正在工作。现在,当我尝试使用“抓取”作为源文件编写文件时,我得到一个空白的文本文档。

open("crawling.text", "w"){ |file| file.write(crawl)} 

任何帮助将不胜感激。提前致谢!

回答

1

如果你是在Unix环境中运行的脚本,您可以在脚本输出重定向到一个像这样的文件:从

$ script_name.rb > crawling.txt 

这样,每个输出(pputsprint等),您的脚本将写入文件中。 请注意,这将会用脚本的输出覆盖文件内容。如果你只想将输出追加到文件中,请使用:

$ script_name.rb >> crawling.txt