2011-06-06 31 views
0

我想從一個小腳本開始取得我和我的朋友從我們的university website的考試結果。需要建立一個網址,並與返回的結果

我想通過它作爲後參數的卷號和處理返回的數據, 我不知道如何創建後字符串。

如果有人能告訴我該從哪裏開始,要學什麼東西,那麼將非常讚賞指南的鏈接。

我不想讓別人爲我寫代碼,只是指導如何開始。

回答

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?&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 

你可能會檢查NokogiriHpricot用以更好地剖析/格式的結果。 Ruby是一種「隱式返回」語言,所以如果您碰巧想知道爲什麼我們沒有返回語句,那是因爲腳本自上次執行後返回結果。

+0

這看起來像我想要的,但那裏的形式需要POST數據,通過這種方式傳遞參數導致404頁面未找到錯誤。 如何以這種方式創建HTTP POST請求? – nikhil 2011-06-07 05:48:34

+0

你會想看看[這個](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

+0

謝謝,我已經取得了一些進展,希望我能儘快完成這項工作。 謝謝。 – nikhil 2011-06-07 12:44:24

1

一個非常簡單的方式做,這是使用open-uri庫,只是把查詢參數的URL查詢字符串:

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

results現在包含正文從URL中取出。

如果你正在尋找更有雄心的東西,看看net/httphttparty寶石。

相關問題