Ruby と Capybara は初めてで、capybara-webkit を使用して Web サイトをスクレイピングしようとしています。私が興味を持っているデータはすべて、td
特定のプロパティを持つタグにあります。
form
私が見ている特定のフォーム要素はどこにありますか?次のコードは機能します:
form.all('td').detect do |td|
if td['valign'] == 'top' && td['nowrap'] != 'nowrap'
print "#{td.text}\n"
end
end
関心のあるすべてのtd
要素の内容が正しく出力されます。ただし、正規表現でテキストを解析しようとすると:
form.all('td').detect do |td|
if td['valign'] == 'top' && td['nowrap'] != 'nowrap'
print "#{td.text}\n"
val1, val2 = td.match(/(\d)(\d)/).captures # The real regex is more complex
end
end
...突然、最初のtd
要素だけが読み取られ、解析されます。td.text
後で解析するために各値を配列にプッシュするだけでも試しましたが、同じことが起こります。td.text
文字列のクローンを作成して、それを操作しようとさえしましたが、うまくいきませんでした。HTML要素を変更するようなタイムアウトはページにないようです。何が原因なのかまったくわかりません。
何かご意見は?