将Nokogiri输出写入文本文件

时间:2014-09-13 04:46:53

标签: 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

所以,一切都在进行中。现在,当我尝试使用“crawl”作为源代码编写文件时,我得到一个空白文本文档。

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

非常感谢任何帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果您在Unix环境中运行脚本,您可以将脚本输出重定向到这样的文件:

$ script_name.rb > crawling.txt

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

$ script_name.rb >> crawling.txt