我一直在尝试,但我无法在此页面上获得这些特定链接: http://www.windowsphone.com/en-us/store/top-free-apps 我想获取本页左侧的每个链接,例如娱乐,但我找不到合适的参考来获取它们。 这是剧本:
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://www.windowsphone.com/en-us/store/top-free-apps")
page.links_with(???)
我该怎么做而不是???所以我不能得到这些链接? 我尝试了类似的东西:
page.links_with(:class => 'categoryNav navText')
OR
page.links_with(:class => 'categoryNav')
OR
page.links_with(:class => 'navText')
等 有人可以帮忙吗?
答案 0 :(得分:0)
使用page.parser,您可以访问底层的Nokogiri对象。这允许您使用xpath进行搜索。
这里的想法是所有这些链接都有一个以'AppLeftMerch'开头的'data-ov'属性。我们可以使用'starts-with'函数来识别它们。
require 'mechanize'
agent = Mechanize.new
page = agent.get("http://www.windowsphone.com/en-us/store/top-free-apps")
page.parser.xpath("//a[starts-with(@data-ov,'AppLeftMerch')]").each do |link|
puts link[:href]
end