Web ページのコンテンツを数回読み取り、そこから正規表現を使用して情報を抽出する必要があります。私はopen-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問題は、行getAResultreturn alwaysをコメントアウトしない限りです-1。このコードをコンソールで試すと、getAResultすぐに が返されます-1が、さらに 2 ~ 3 秒ほど ruby プロセスが実行されます。
file.close行を削除するとgetAResult、正しい結果が返されますが、最初のものを除いてgetResults一連のs になります。-1ページの読み込みに gemを使用しようとしましcurbたが、同様の問題が発生します。
これは、スレッドに関連する問題のようです。しかし、検索して対応する解決策を見つけるのに合理的なものを思いつくことができませんでした。何が問題になると思いますか?
注: 私が読もうとしているこの Web ページは、それほど速く結果を返しません。時間がかかります。