无效参数@ rb_sysopen错误使用Nokogiri与Rails 5.2在Windows服务器上



我在StackOverflow或Internet上阅读了几个问题,但没有找到解决这个问题的方法。上下文很重要:

  • Windows server 2016
  • Rails 5.2.4
  • Ruby 2.6.5
  • Nokogiri 1.12.3-x64-mingw32

我希望使用Nokogiri来解析互联网上收集的XML资源。第一步是从url获取内容:

resource = Nokogiri::XML(open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"))

但是这会引发错误:

Errno::EINVAL
Invalid argument @ rb_sysopen - https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC

我还尝试了以下,基于Nokogiri教程:

resource = Nokogiri::XML(URI.open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"))

引发错误:private method 'open' called for URI:Module

如何从已发布的API向Nokogiri提供XML数据?

非常感谢!

我的解决方案包括两个步骤:

  1. 我添加了open-uri
  2. 我定义了代理选项false关于我的基础设施

然后可以创建Nokogiri文档:

resource = URI.open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"), proxy: false)
document = Nokogiri::XML(resource)

文件现在可以被解析了。

最新更新