使用nokogiri获取href属性值

时间:2017-01-19 05:56:29

标签: ruby-on-rails ruby nokogiri

我正在尝试使用nokogiri和fetch 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上的所有表格中返回一组网址,而我需要它只在表格中循环,该表格位于摘要选取href属性值之下。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

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

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

注意前导点.,它将查询锚定在当前节点上。否则,即使您从当前节点调用查询,也会针对根节点运行查询。