Ruby open-uri 无法打开 url (m1 mac)

Max*_*spo 19 ruby open-uri nokogiri apple-m1

我开始学习 ruby​​ 和 scraping,我尝试用 open 打开一个 url,我得到了

lib/scrapper.rb:7:in `initialize': No such file or directory @ rb_sysopen - https://en.wikipedia.org/wiki/Douglas_Adams (Errno::ENOENT) from lib/scrapper.rb:7:in `open' from lib/scrapper.rb:7:in `<main>'

这是我的代码:

# frozen_string_literal: true

require 'rubygems'
require 'open-uri'
require 'nokogiri'

document = open("https://en.wikipedia.org/wiki/Douglas_Adams")

puts document

Run Code Online (Sandbox Code Playgroud)

经过长时间的谷歌研究后,我没有找到任何解决方案,我用这个网址测试打开:http://www.krosmoz.com/fr/almanax 谢谢大家

ps我用的是mac m1不知道是否是兼容性问题

Joh*_*ter 33

问题很可能是您使用的是 ruby​​ 3.0.0。

在 Ruby 2.7 下,我收到以下警告:

警告:不推荐通过 Kernel#open 调用 URI.open,直接调用 URI.open 或使用 URI#open

而在 Ruby 3.0 下,它已被删除。

因此,根据警告,解决方案:

document = URI.open("https://en.wikipedia.org/wiki/Douglas_Adams").read
Run Code Online (Sandbox Code Playgroud)