首页 > 解决方案 > 如何修复“Errno::ENOENT:没有这样的文件或目录@rb_sysopen”?

问题描述

编码超级新手!我用rails new.

我正在尝试抓取网站,但出现错误Errno::ENOENT: No such file or directory @ rb_sysopen

require 'open-uri'
require 'nokogiri'
require 'pry'

def get_page
    link = "https://www.pokemon.com/us/pokedex/"
    doc = Nokogiri::HTML(open(link))
    #rest of code
end

get_page

任何帮助表示赞赏。谢谢!

标签: ruby-on-railsrubyweb-scrapingopen-uri

解决方案


Kernel#open打开文件、IO 流或子进程。它不打开 URI:

open(path [, mode [, perm]] [, opt]) → io or nil

打开(路径 [,模式 [,烫发]] [,选择]){|io| 块 } → 对象

创建连接到给定流、文件或子进程的 IO 对象。

OpenURI通过调用方法使用URI::open

方法:URI.open

.open(name, *rest, &block)Object

允许打开各种资源,包括 URI。

因此,您的代码应如下所示:

def get_page
  link = "https://www.pokemon.com/us/pokedex/"
  doc = Nokogiri::HTML(URI.open(link))
  #rest of code
end

推荐阅读