我正在解析两个具有相似HTML标签的不同网站。为此,我需要使用一个通用的解析器。我的问题是一个网站的HTML格式为div/ol/li/span/a,另一个网站的HTML格式为div/ol/li/h3/a
我当前的解析器代码是
doc = Hpricot(open("http://test.com").read)
doc.search("div/ol/li/span/a").each do |a|
question = a.inner_html
ans_url = a.attributes['href']
puts question
puts answer_url
end这在第一个站点上工作得很好。如何使用相同的代码来解析我的第二个站点(div/ol/li/h3/a)。如何指定条件。我尝试的内容如下所示
doc = Hpricot(open("http://test.com").read)
doc.search("div/ol/li/span or h3/a").each do |a|
question = a.inner_html
ans_url = a.attributes['href']
puts question
puts answer_url
end但这并不管用。有谁能帮帮忙。
发布于 2011-06-01 19:59:20
它起作用了,我使用以下代码
doc.search("div/ol/li/span/a | div/ol/li/h3/a").each do |a|
#..
end感谢所有人
发布于 2011-06-01 19:41:54
为什么不同时搜索两个呢?
编辑:我又错了--我意识到为什么我切换到了Nokogiri。它更容易使用:
require 'open-uri'
doc = Nokogiri::HTML(open('http://example.com/'))
doc.search("div > ol > li > span > a", "div > ol > li > h3 > a").each do |a|
question = a.content
answer_url = a.attr('href').value
puts question
puts answer_url
endhttps://stackoverflow.com/questions/6199788
复制相似问题