我想從一個小腳本開始取得我和我的朋友從我們的university website的考試結果。需要建立一個網址,並與返回的結果
我想通過它作爲後參數的卷號和處理返回的數據, 我不知道如何創建後字符串。
如果有人能告訴我該從哪裏開始,要學什麼東西,那麼將非常讚賞指南的鏈接。
我不想讓別人爲我寫代碼,只是指導如何開始。
我想從一個小腳本開始取得我和我的朋友從我們的university website的考試結果。需要建立一個網址,並與返回的結果
我想通過它作爲後參數的卷號和處理返回的數據, 我不知道如何創建後字符串。
如果有人能告訴我該從哪裏開始,要學什麼東西,那麼將非常讚賞指南的鏈接。
我不想讓別人爲我寫代碼,只是指導如何開始。
我已經在這裏寫了一個解決方案,只是作爲您可能想出的任何參考。攻擊有多種方式。
#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是一種「隱式返回」語言,所以如果您碰巧想知道爲什麼我們沒有返回語句,那是因爲腳本自上次執行後返回結果。
你可以看看net/http庫,作爲標準庫的一部分。有關詳細信息,請參閱http://www.ruby-doc.org/stdlib/libdoc/net/http/rdoc/index.html,在該頁面上有一些示例可幫助您入門。
Youǘe指出我在正確的方向,謝謝。 – nikhil 2011-06-07 12:45:05
一個非常簡單的方式做,這是使用open-uri
庫,只是把查詢參數的URL查詢字符串:
require 'open-uri'
name = 'nikhil'
results = open("http://www.nitt.edu/prm/ShowResult.html?¶m=#{name}").read
results
現在包含正文從URL中取出。
如果你正在尋找更有雄心的東西,看看net/http
和httparty
寶石。
這看起來像我想要的,但那裏的形式需要POST數據,通過這種方式傳遞參數導致404頁面未找到錯誤。 如何以這種方式創建HTTP POST請求? – nikhil 2011-06-07 05:48:34
你會想看看[這個](http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html)並改變使用'open-uri'用'net/http'。不幸的是Open-uri只是讓你使用'GET'。你可能需要'net/http'的方法是:'Net :: HTTP.post_form'。這些例子看起來也是在利用'URI'。應該有足夠的示例代碼在該頁面上讓你工作。 – 2011-06-07 11:34:40
謝謝,我已經取得了一些進展,希望我能儘快完成這項工作。 謝謝。 – nikhil 2011-06-07 12:44:24