您好我正在运行一些代码来抓取网页,然后在这里吐出一个csv文件就是代码:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'csv'
page = Nokogiri::HTML(open("https://www.drugs.com/pharmaceutical-companies.html"))
puts page.class #=> Nokogiri::HTML::Document
pharma_links = page.css("div.col-list-az a")
link= pharma_links.each{|link| puts link['href'] }
company = pharma_links.each{|link| puts link.text}
CSV.open("file.csv", "wb") do |csv|
csv << [company, link]
end
代码一直工作到最后,我得到了这个错误
C:/Ruby24/lib/ruby/2.4.0/csv.rb:1282:in `initialize': Permission denied @ rb_sysopen - file.csv (Errno::EACCES)
我确实拥有整个C:驱动器的所有权,但仍然收到此错误。请帮助我超越自己的智慧。另外,我是Ruby的新手,所以请在答案中明确说明。
我使用32位Ruby运行Windows 10。
答案 0 :(得分:2)
我确实拥有整个C:驱动器的所有权
与您断言的内容相反,您在驱动器C:上没有无处不在的写入权限。有些事情阻止你在当前的工作目录(Dir.getwd
)中写作。
据推测,您至少可以写入C:?如果是这样,试着写一下。
CSV.open("c:/file.csv", "wb") do |csv|