我想从一个小脚本开始,从我们university website获取我和我的朋友的考试成绩。
我想将卷号作为post参数传递给它并使用返回的数据, 我不知道如何创建帖子字符串。
如果有人可以告诉我从哪里开始,有什么东西可以学习,教程的链接将会非常受欢迎。
我不希望有人为我编写代码,只是指导如何开始。
答案 0 :(得分:1)
您可以查看net / http库,它包含在标准库中。有关详细信息,请参阅http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html,该页面上有一些示例可帮助您入门。
答案 1 :(得分:1)
一种非常简单的方法是使用open-uri
库并将查询参数放在URL查询字符串中:
require 'open-uri'
name = 'nikhil'
results = open("http://www.nitt.edu/prm/ShowResult.html?¶m=#{name}").read
results
现在包含从网址获取的正文文本。
如果您正在寻找更具野心的东西,请查看net/http
和httparty
宝石。
答案 2 :(得分:1)
我在这里写了一个解决方案,作为你可能提出的任何参考。有多种方法可以攻击它。
#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?¶m="
#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是一种“隐式返回”语言,所以如果你碰巧想知道为什么我们没有返回语句,因为自上次执行以来脚本将返回结果。