我需要多次讀取網頁的內容,並從中提取一些信息,我使用正則表達式。我使用open-uri
閱讀網頁內容,我編寫的代碼示例如下:閱讀紅寶石中的幾個URI
require 'open-uri'
def getResults(words)
results = []
words.each do |word|
results.push getAResult(word)
end
results
end
def getAResult(word)
file = open("http://www.somapage.com?option=#{word}")
contents = file.read
file.close
contents.match /some-regex-here/
$1.empty? ? -1 : $1.to_f
end
的問題是,除非我註釋掉file.close
線getAResult
總是-1
回報。當我在控制檯上試用此代碼時,getAResult
立即返回-1
,但ruby進程運行另外兩到三秒左右。
如果我刪除file.close
線getAResult
返回正確的結果,但現在getResults
是除了第一個一堆-1
秒。我嘗試使用curb
gem來閱讀頁面,但出現類似的問題。
這看起來像是一個與線程相關的問題。但是,我無法想出合理的方法來搜索並找到相應的解決方案。你認爲問題是什麼?
注意:我嘗試閱讀的此網頁不會如此快速地返回結果。這需要一些時間。
請再次閱讀該問題。這不是關於匹配或正則表達式。這是關於我獲得網頁內容準備和功能返回結果的時間。 – mert