Я хочу получить контент с этой * страницы. Все, что я посмотрел, дает решение для анализа элементов CSS; но эта страница не имеет ни одного.
Вот единственный найденный код, который выглядел так, как будто он должен работать:
file = File.open('http://hiscore.runescape.com/index_lite.ws?player=zezima', "r") contents = file.read puts contents
Ошибка:
tracker.rb:1:in 'initialize': Invalid argument - http://hiscore.runescape.com/index_lite.ws?player=zezima (Errno::EINVAL) from tracker.rb:1:in 'open' from tracker.rb:1
*http://hiscore.runescape.com/index_lite.ws?player=zezima
http://hiscore.runescape.com/index_lite.ws?player=zezima
Если вы попытаетесь отформатировать это как ссылку в сообщении, он по какой-то причине не распознает подчеркивание (_) в URL.
Вы действительно хотите использовать open (), предоставляемый классом Kernel, который может читать из URI, вам просто нужно сначала потребовать библиотеку OpenURI:
require 'open-uri'
Используется так:
require 'open-uri' file = open('http://hiscore.runescape.com/index_lite.ws?player=zezima') contents = file.read puts contents
Эта связанная тема SO охватывает тот же вопрос:
Открыть поток ввода-вывода из локального файла или URL-адреса
Пожалуйста, используйте open-uri, его поддержка как uri, так и локальных файлов
require 'open-uri' contents = open('http://www.google.com') {|f| f.read }
Подходящим способом получения содержимого сайта является модуль NET :: HTTP в Ruby:
require 'uri' require 'net/http' url = "http://hiscore.runescape.com/index_lite.ws?player=zezima" r = Net::HTTP.get_response(URI.parse(url).host, URI.parse(url).path)
File.open () не поддерживает URI.
С наилучшими пожеланиями, Fabian