Ruby Mechanize:以编程方式单击链接,而不知道链接的名称

Ruby Mechanize:以编程方式单击链接,而不知道链接的名称,ruby,mechanize,Ruby,Mechanize,我正在写一个ruby脚本来搜索web。代码如下: require 'mechanize' mechanize = Mechanize.new page = mechanize.get('http://www.example.com/) example_page = page.link_with(:text => 'example').click puts example_page.body 上面的代码工作正常。文本“example”(:text=>“example”)必须是页面上的链接

我正在写一个ruby脚本来搜索web。代码如下:

require 'mechanize'

mechanize = Mechanize.new
page = mechanize.get('http://www.example.com/)
example_page = page.link_with(:text => 'example').click
puts example_page.body

上面的代码工作正常。文本“example”(:text=>“example”)必须是页面上的链接,代码才能正常工作。然而,问题是,当我进行web搜索时(bing、yahoo、google等),显示了数百个链接。如何在不知道链接的确切名称的情况下以编程方式单击链接?如果链接的名称部分(或全部)与我指定的文本匹配,我希望能够单击该链接,或者如果链接具有特定url,则可以单击该链接。如有任何帮助,将不胜感激。

Mechanize具有正则表达式:

page.link_with(text: /foo/).click
page.link_with(href: /foo/).click
以下是通常适用于链接和表单的机械化标准:

name: name_matcher
id: id_matcher
class: class_matcher
search: search_expression
xpath: xpath_expression
css: css_expression
action: action_matcher
...

如果你很好奇,这里有一个

如果你已经知道这个URL,为什么不直接去那个URL呢?不管怎样,似乎你想要的是收集所有链接,过滤它们的一些条件,然后点击那些满足的条件?不要刮取它们的前端页面,而是使用它们的API。尝试传递一个正则表达式而不是字符串,也许?