2011-11-08 54 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文檔顯示正在使用的正則表達式,所以我認爲這將工作正常。另外,$1將返回您的image_id

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

+1

注意'\ d {1,}'是一樣的'\ d +'(但不太美觀);)此外,我可能會建議使用'%r'正則表達式的文字讓你不你必須避開你的斜槓:':href =>%r {^/image /(\ d +)}' – Phrogz

+0

兩者都適用!多謝你們 –