2011-11-08 11 views
1

私は画像がいっぱいであるウェブサイトとやりとりしようとしており、それぞれの画像をクリックしてインタラクトしたいと思っています。各画像には相対URL(例:/ image/1000 /、image/1023 /など)があります。私が想定している数字はimage_idであり、連続したものではなく、ランダムであると思われます。ページに一致するリンクを検索するHREFパターン

これは私がレールコンソールでやったことです:

agent = Mechanize.new 
agent.get('http://www.website.com') 
agent.page.links_with(:href => '/image') 

最後の行には何も返しませんでしたが、私は

agent.page.link_with(:href => '/image/1000/') 

をしようとしたときに、予想通りそれがリンクを返します。

問題は:hrefパラメータにありますが、 '/ image'であってはなりません。しかし、私は '/ image /'、 '/ image/*'などのような他の組み合わせを試しました。

アドバイスをお待ちしています。

答えて

1

注:未テスト

試用:agent.page.links_with(:href => /\/image\/(\d{1,})/) links_withのドキュメントは正規表現が使用されていることを示しているので、これはうまくいくと思います。また$1image_idを返します。

http://mechanize.rubyforge.org/Mechanize/Page.html#method-i-links_with-28criteria-29

+1

'\ dの{1}' 'の\ D +'(しかし醜い)と同じであることに留意されたい。また)あなたはドンように、I」はリテラル '%のr'正規表現を使用して示唆しているかもしれませんあなたのスラッシュをエスケープする必要があります: ':href =>%r {^/image /(\ d +)}' – Phrogz

+0

両方の作品!みんなありがとう –

関連する問題