返回xpath的值 - Nokogiri Ruby

时间:2013-08-26 16:23:00

标签: ruby xpath nokogiri

我正在使用xpath在像这样的网站上获取一些值

auction_page = Nokogiri::HTML open(a, "User-Agent" => theagent)
auction_links = auction_page.xpath('//iframe[contains(@src, "near")]/@src')

返回我需要的东西

#<Nokogiri::XML::Attr:0x3fcd7bef5730 name="src" value="http://thevalue.com">

我只想获得价值,而不是价值或其他任何东西。我该怎么做呢?

2 个答案:

答案 0 :(得分:3)

我认为您正在寻找.text方法。

因此auction_links.text应返回“http://thevalue.com”。

修改

如果这不起作用,尝试auction_links.first将返回一个数组,我确定链接将在那里。 ; )

如需进一步参考,这是basic Nokogiri Crawling/Parsing的精彩教程。

答案 1 :(得分:0)

你可以这样做:

require 'nokogiri'

doc = Nokogiri::HTML::Document.parse <<-end
<a id = "foo" class="bar baz" href = "www.test.com"> click here </a>
end

doc.at_xpath("//a[contains(@class,'bar')]/@href").to_s
# => "www.test.com"

所以在你的情况下你可以写:

auction_page.at_xpath('//iframe[contains(@src, "near")]/@src').to_s
# => "http://thevalue.com"