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