Hpricot を使用して、知らないクラス名のスパン内の値を取得しようとしています。「foo_[数桁]_bar」というパターンに従うことはわかっています。
現在、含まれている要素全体を文字列として取得し、正規表現を使用してタグの文字列を解析しています。その解決策はうまくいきますが、本当に醜いようです。
doc = Hpricot(open("http://scrape.example.com/search?q=#{ticker_symbol}"))
elements = doc.search("//span[@class='pr']").inner_html
string = ""
elements.each do |attr|
if(attr =~ /foo_\d+_bar/)
string = attr
end
end
# get rid of the span tags, just get the value
string.sub!(/<\/span>/, "")
string.sub!(/<span.+>/, "")
return string
それを行うためのより良い方法があるはずです。私は次のようなことをしたいと思います:
elements = doc.search("//span[@class='" + /foo_\d+_bar/ + "']").inner_html
しかし、それは実行されません。正規表現で検索する方法はありますか?