2011-11-08 58 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

两者都适用!多谢你们 –