Capybara
Ruby で Web スクレイピングをする際はCapybara
という選択をする場合が多いと思います。その際、Capybara の all メソッド(find_all メソッド)で正規表現を使って抽出をするときの注意点です。
オプションの引数として:text
を用いるとき
ドキュメントにもあるように、引数として:text
を使うのは分かると思います。そして取りうる値は「文字列」または「正規表現」です。この「正規表現」を取るときの記述方法が問題となります(なりました)。
正規表現はクォーテーションでくくらない
正解から示すと、以下のように書かないといけません。
page.all('a', :text => /ruby/)
そうです、クォーテーションで正規表現をくくってはいけません。これで数時間ハマりました……。