Предупреждающее сообщение с Nokogiri и Open-Uri

#ruby #nokogiri #windows-subsystem-for-linux #open-uri

#ruby #nokogiri #windows-subsystem-for-linux #open-uri

Вопрос:

Здравствуйте, у меня есть сообщение об ошибке следующего содержания :

предупреждение: вызов URI.open через Kernel#open устарел, вызывайте URI.open напрямую или используйте URI#open

Я не понимаю, почему появляется это сообщение, я также попробовал команду URI.open («link»). Читать

Но я должен использовать Nokogiri.

Вот мой код:

 require 'nokogiri'
require 'open-uri'


puts "Wait a second data is coming..."


PAGE_URL = "https://coinmarketcap.com/all/views/all/"

page = Nokogiri::HTML(open(PAGE_URL))


currency_name_array = page.xpath("//tr/td/a[contains(@class, 'currency-name-container')]/text()").map {|x| x.to_s }

currency_value_array = page.xpath("//tr/td/a[contains(@class, 'price')]/text()").map {|x| x.to_s }


currency_result = Hash[currency_name_array.zip(currency_value_array)]

puts currency_result 

Заранее спасибо.

Комментарии:

1. Так же, как предупреждение предполагает, что «URI.open через Kernel#open устарел», поэтому вместо этого замените Nokogiri::HTML(open(PAGE_URL)) на Nokogiri::HTML(URI.open(PAGE_URL)) . Ранее require 'open-uri' был изменен способ Kernel#open работы, позволяющий использовать функциональность uri, но это хакерство и, следовательно, устарело

2. Спасибо! Это поможет мне!