我对红宝石很新。我理解如何读/写文件(或者我认为如此),但是我把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)}
非常感谢任何帮助。提前谢谢!
答案 0 :(得分:1)
如果您在Unix环境中运行脚本,您可以将脚本输出重定向到这样的文件:
$ script_name.rb > crawling.txt
这样,您脚本中的每个输出(p
,puts
,print
等)都将写入文件中。
请注意,这将使用脚本的输出覆盖文件内容。如果您只想将输出附加到文件,请使用以下命令:
$ script_name.rb >> crawling.txt