Нужно построить URL и работать с возвращенным результатом - PullRequest
0 голосов
/ 06 июня 2011

Я хотел бы начать с небольшого скрипта, который извлекает результаты экзаменов для меня и моих друзей с нашего университетского веб-сайта .

Я хотел бы передать ему номер броска в качествепараметр post и работа с возвращенными данными, я не знаю, как создать строку post.

Было бы замечательно, если бы кто-то мог сказать мне, с чего начать, что изучать, ссылки научебное пособие было бы очень ценно.

Я не хочу, чтобы кто-то писал для меня код, просто руководство по началу работы.

Ответы [ 3 ]

1 голос
/ 06 июня 2011

Очень простой способ сделать это - использовать библиотеку open-uri и просто поместить параметры запроса в строку запроса URL:

require 'open-uri'
name = 'nikhil'
results = open("http://www.nitt.edu/prm/ShowResult.html?&param=#{name}").read

results теперь содержит основной текст, извлеченный из URL.

Если вы ищете что-то более амбициозное, посмотрите на net/http и httparty самоцвет.

1 голос
/ 06 июня 2011

Я написал решение здесь просто как справочник для всего, что вы могли бы придумать. Есть несколько способов атаковать это.

#fetch_scores.rb

require 'open-uri'

#define a constant named URL so if the results URL changes we don't
#need to replace a hardcoded URL everywhere.
URL = "http://www.nitt.edu/prm/ShowResult.html?&param="

#checking the count of arguments passed to the script.
#it is only taking one, so let's show the user how to use
#the script
if ARGV.length != 1
  puts "Usage: fetch_scores.rb student_name"
else
  name = ARGV[0] #could drop the ARGV length check and add a default using ||
  # or   name = ARGV[0] || nikhil
  results = open(URL + name).read
end

Вы можете изучить Nokogiri или Hpricot , чтобы лучше проанализировать / отформатировать ваши результаты. Ruby является языком «неявного возврата», поэтому, если вам интересно, почему у нас не было оператора return, это связано с тем, что скрипт будет возвращать результаты с момента его последнего выполнения.

1 голос
/ 06 июня 2011

Вы можете взглянуть на библиотеку net / http, входящую в стандартную библиотеку. Для получения подробной информации см. http://www.ruby -doc.org / stdlib / libdoc / net / http / rdoc / index.html . На этой странице приведено несколько примеров для начала работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...