nokogiri运行良好,但没有返回任何内容

b1uwtaje  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(323)

嗨,谢谢你的阅读!
我正在学习如何使用xpath和nokogiri,我遵循了与engine yard教程相同的说明。
我复制/粘贴了完全相同的代码,它在终端上运行良好并结束(没有返回错误消息),但没有返回任何内容。它应该返回所有的标题与超链接,但实际上它只是结束了,因为没有什么可以返回。

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(URI.open("http://www.google.com/search?q=doughnuts"))

doc.xpath('//h3/a').each do |node|
    puts node.text
end

# puts doc.class

我试过了 puts doc.class 而不是 puts node.text 它也做了同样的事情(运行良好,结束时没有错误,没有返回任何内容)
我也试过了 puts doc.class 而不是

doc.xpath('//h3/a').each do |node|
    puts doc.class
end

它返回的很好:“nokogiri::html::document”所以问题来自我的xpath,但我不知道为什么。。。
如果有人能帮我,我会很高兴的!:)

sigwle7e

sigwle7e1#

在google页面结构中,h3元素位于a元素中。你可以试试这样的。我认为它会起作用。

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(URI.open("http://www.google.com/search?q=doughnuts"))

doc.xpath('//h3').each do |node|
  puts node.text
  puts node.parent.xpath('./@href')
end

相关问题