- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在关注“The Bastards Book of Ruby”,我正在尝试使用 nokogiri 构建一个网络爬虫,但是当我尝试运行它抛出错误的代码时,大约进行了四分之一:
Crawler.rb:6:in `mkdir': No such file or directory @ dir_s_mkdir - data-hold/nobel (Errno::ENOENT)
from Crawler.rb:6:in `<main>'
我的代码如下:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
DATA_DIR = "data-hold/nobel"
Dir.mkdir(DATA_DIR) unless File.exists?(DATA_DIR)
BASE_WIKIPEDIA_URL = "http://en.wikipedia.org"
LIST_URL = "#{BASE_WIKIPEDIA_URL}/wiki/List_of_Nobel_laureates"
HEADERS_HASH = {"User-Agent" => "Ruby/#{RUBY_VERSION}"}
page = Nokogiri::HTML(open(LIST_URL))
rows = page.css('div.mw-content-ltr table.wikitable tr')
rows[1..-2].each do |row|
hrefs = row.css("td a").map{ |a|
a['href'] if a['href'] =~ /^\/wiki\//
}.compact.uniq
hrefs.each do |href|
remote_url = BASE_WIKIPEDIA_URL + href
local_fname = "#{DATA_DIR}/#{File.basename(href)}.html"
unless File.exists?(local_fname)
puts "Fetching #{remote_url}..."
begin
wiki_content = open(remote_url, HEADERS_HASH).read
rescue Exception=>e
puts "Error: #{e}"
sleep 5
else
File.open(local_fname, 'w'){|file| file.write(wiki_content)}
puts "\t...Success, saved to #{local_fname}"
ensure
sleep 1.0 + rand
end # done: begin/rescue
end # done: unless File.exists?
end # done: hrefs.each
end # done: rows.each
我真的不知道为什么它不创建一个新目录来存储数据。我知道我一定是遗漏了一些非常简单的东西......
最佳答案
我最好的猜测是不仅“data-hold/nobel”不存在,“data-hold/”也不存在。由于 mkdir
不会递归创建您要创建的目录的所有父目录,因此会引发错误。
要解决此问题,您可以使用 FileUtils.mkdir_p ,它会创建所有父目录。
在使用 mkdir_p
之前一定要include fileutils
。
关于RUBY (Errno::ENOENT),没有这样的文件或目录@dir_s_mkdir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32675539/
我是 Ubuntu 17.04 的新手。所以我在使用 git 和 Heroku 时遇到了一些麻烦。 当我运行 $ heroku create 或尝试克隆在 Windows heroku git:clo
我在家使用 Windows 10 计算机进行开发,在工作中使用 Windows 10 计算机进行开发,并使用 Ubuntu 1604 服务器进行生产...... 当我运行“docker-compose
嘿,我一直在尝试安装“ws”模块,但是当我运行 npm install ws 时它给出以下错误, npm WARN enoent ENOENT: no such file or directory,
在 firebase function getting started guide 之后并在尝试部署时遇到一个看似简单的错误: firebase deploy --only functions i
在这个问题上有点卡住了。通过 Udemy.com 参加有关 Docker 的 Grider 类(class)。 当我这样做时,我总是收到以下错误: docker run -p 3000:3000 -v
我只想将 socket.io 安装到我位于 3.chat 文件夹中的项目中。但是当我运行以下命令时,它会显示以下警告。并且它没有在我的项目文件夹中创建 node_modules 目录。如何解决这个问题
我的整个 nodejs 代码位于 abc 文件夹中 root@ip-10-0-0-9:~/standalone/apiserver# ls Dockerfile abc root@ip-10-0-0
我有一个创建-反应-应用程序,我正在翻译文件从JSX到打字。例如,有一个文件名为/code/app_react/src/Common/Action.jsx,我将其重命名为/code/app_act/s
我从 docker 文件构建了一个图像来运行 node 并复制到一个完美运行的简单 node express 应用程序中。图像构建我可以运行容器和 bash 并复制本地文件。当我在 docker-co
问题是当我在 Android Studio 中运行我的程序时,FileInputStream 找不到 c:\poi-test.xls 文件。 我在 Android Studio 中运行的简单测试 ja
supervisord 配置如下, myserver 是 golang 可执行文件放入目录 /usr/tci/bin .它确实存在于目录中,为什么我仍然得到 ENOENT 错误? ENOENT 表示找
我正在使用 npm 3.3.6当我尝试安装一堆模块时,出现以下错误: npm i babel-cli babel-plugin-syntax-async-functions babel-plugin-
当我运行命令部署时,我收到以下错误: npm ERR! path C:\Users\hp\nodes\%RESOURCE_DIR%\package.json npm ERR! code ENOENT
当调用 access(2) 并得到 errno == ENOENT 时,手册页说: ENOENT A directory component in pathname would have bee
我正尝试从我的 DCIM 文件夹加载一个 .png 文件,但它抛出异常 06-25 14:03:09.350: E/BitmapFactory(12552): Unable to decode str
我正在运行以下程序,它使用 stat() 检查文件是否存在。但是,当我传递一个路径时,比如 $HOME/file.sh,它失败并出现 ENOENT 错误。但是当我通过扩展路径即 /root/file.
我正在使用 file system with nodejs在 windows 中写入进程日志。我有以下代码 var fs = require('fs'); var config = JSON.pars
我在使用 rubyXL 构建的爬虫时遇到了问题。它正确地遍历了我的文件系统,但我收到了 (Errno::ENOENT) 错误。我已经检查了所有 rubyXL 代码,一切似乎都已检查。我的代码附
当我尝试在VS Code上使用https://github.com/DonJayamanne/gitHistoryVSCode查看git历史记录时,出现错误Error: spawn git ENOEN
当我运行 grunt-open 时,我不断收到“警告:Spawn ENOENT”问题。 我的设置 我的所有项目文件都在 Google 云端硬盘上。我正在直接对文件进行开发(使用 Google 云端硬盘
我是一名优秀的程序员,十分优秀!