无论我做什么,我都会被拒绝

时间:2017-10-03 14:02:25

标签: ruby

您好我正在运行一些代码来抓取网页,然后在这里吐出一个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。

1 个答案:

答案 0 :(得分:2)

  

我确实拥有整个C:驱动器的所有权

与您断言的内容相反,您在驱动器C:上没有无处不在的写入权限。有些事情阻止你在当前的工作目录(Dir.getwd)中写作。

据推测,您至少可以写入C:?如果是这样,试着写一下。

CSV.open("c:/file.csv", "wb") do |csv|