我在StackOverflow或Internet上阅读了几个问题,但没有找到解决这个问题的方法。上下文很重要:
- Windows server 2016 Rails 5.2.4Ruby 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数据?
非常感谢!
我的解决方案包括两个步骤:
- 我添加了open-uri 我定义了代理选项false关于我的基础设施
然后可以创建Nokogiri文档:
resource = URI.open("https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/categoryscheme/ESTAT/AGRIC"), proxy: false)
document = Nokogiri::XML(resource)
文件现在可以被解析了。