Извлечение ссылок в классе - PullRequest
1 голос
/ 20 сентября 2011
doc.xpath("//div[@id='Ci_']").each_with_index do |div,i|
parse_file.puts "#{div.at_xpath("./*[@class='class1']").text}"
parse_file.puts "#{div.at_xpath("./*[@class='class2']").text}"

В классе 2 есть две ссылки, и мне нужно извлечь текст, который принадлежит этим ссылкам, отдельно.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Предполагая, что якоря имеют нужный вам класс (и не принадлежат к родительскому классу с этим классом):

doc = Nokogiri::HTML('<div><a class="c2">foo</a><a class="c2">bar</a></div>')
div = doc.at_css('div')
both= div.xpath('./*[@class="c2"]/text()').map(&:text)
p both
#=> ["foo", "bar"]

Если якоря находятся в этом классе:

doc = Nokogiri::HTML('<div><b class="c2"><a>foo</a><a>bar</a></b></div>')
div = doc.at_css('div')
both= div.xpath('./*[@class="c2"]//a/text()').map(&:text)
p both
#=> ["foo", "bar"]
1 голос
/ 20 сентября 2011

Попробуйте это:

doc.search("#Ci_ .class1 a").first.text
doc.search("#Ci_ .class2 a").last.text
...