查找所有链接<a> where <href> contains some text?</href></a>

时间:2013-12-04 00:00:33

标签: jquery ruby xpath nokogiri

我正在使用Nokogiri,并试图通过链接包含original的网页获取所有链接,使用以下内容:

doc = Nokogiri::XML(open(some_url))
links = doc.xpath('//a[@href*="original"]') 
p links.map {|link| link['href']}

“contains”选择器*=在此表达式中不起作用,我收到语法错误。

我还尝试找到等于href的{​​{1}},而且它再也没有返回。我究竟做错了什么?

2 个答案:

答案 0 :(得分:2)

该语法在XPath中无效。要获取包含href属性中给定字符串的所有链接,您应该使用:

//a[contains(@href, "original")]

更多信息here

答案 1 :(得分:1)

您可以使用CSS选择器[attributename*="val"]执行此操作,如下所示:

doc = Nokogiri::XML(open(some_url))
links = doc.css('//a[@href*="original"]') 
p links.map {|link| link['href']}