使用 Nokogiri 获取 href 属性值



我正在尝试使用 nokogiri 循环访问表并获取 href 属性值。

我的代码如下所示:

require 'nokogiri'
require 'open-uri'
def company_bod(abbrv)
doc=Nokogiri::HTML(open("http://in.reuters.com/finance/stocks/companyOfficers?symbol=#{abbrv}"))
data = doc.css('.column1 tbody.dataSmall').first if doc.css('.column1')
data.css('tr').each do |col|
    puts col.xpath('//td/h2/a/@href').text()
    #puts col.css('td[2]').text()
    #puts col.css('td[3]').text()
    #puts col.css('td[4]').text() 
end 
company_bod("GOOGL.O")

但这在 http://in.reuters.com/finance/stocks/companyOfficers?symbol=GOOGL.O 上存在的所有表中向我返回了一组 URL,而我只需要它只遍历摘要选择 href 属性值下方的表。

我在这里做错了什么?

您需要将 xpath 查询锚定在元素上

  • node.xpath("//example")进行全局搜索
  • node.xpath(".//example")从当前节点开始执行本地搜索

请注意将查询定位在当前节点的前导点.。否则,查询将针对根节点运行,即使您从当前节点调用它也是如此。

最新更新