1

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要素を変更するようなタイムアウトはページにないようです。何が原因なのかまったくわかりません。

何かご意見は?

4

0 に答える 0