#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. Спасибо! Это поможет мне!