【发布时间】:2011-10-17 12:08:25
【问题描述】:
我正在尝试获取给定 xpath 的实际值。我在 sample.rb 文件中有以下代码
require 'rubygems'
require 'nokogiri'
require 'open-uri'
doc = Nokogiri::HTML(open('http://www.changebadtogood.com/'))
desc "Trying to get the value of given xapth"
task :sample do
begin
doc.xpath('//*[@id="view_more"]').each do |link|
puts link.content
end
rescue Exception => e
puts "error"
end
end
输出是:
查看更多问题..
当我尝试获取其他不同 XPath 的值时,例如:/html/body/div[4]/div[3]/h1/span
然后我收到 “错误” 消息。
我在 Nokogiri 试过这个。我不知道为什么这只会为少数 XPath 提供结果。
我在 Hpricot 中也尝试过。
http://hpricot.com/demonstrations
我粘贴了我的 url 和 XPath,我看到了//*[@id="view_more"]
的结果
as
查看更多问题..
[此文本位于最近问题标题的底部]
但未显示以下结果:/html/body/div[4]/div[3]/h1/span
对于这个 XPath,我期待结果 Bad。
[这出现在
http://www.changebadtogood.com/ 作为 class="hero-unit" div 的第一个标头。]
【问题讨论】:
-
这里有很多问题。您没有包含引发错误的代码。捕获错误并打印“错误”有什么好处?让错误出现,以便您可以调试它。并且您应该在发布问题之前修正缩进。
-
而且,您已经提出了 14 个问题,但尚未接受一个答案。我已经在下面回答了您的问题,但我敦促您重新访问your previously-asked questions,并为每个问题找到最能回答您问题的答案(如果有的话)并接受(点击复选标记)。
标签: ruby xpath screen-scraping nokogiri hpricot