2015-02-15 3 views
0

По какой-то причине этот код не работает:Синтаксический с Nokogiri - не перебрать строки

url = "http://www.ontariocourts.ca/decisions_index/2015.htm" 
doc = Nokogiri::HTML(open(url)) 

doc.css("table.judtbl tr").each do |i| 
    title = i.at_css(".title p").content 
    citation = i.at_css(".citation p").content 

p title 
p citation 

end 

Я схожу с ума, пытаясь понять, почему. Пожалуйста, помогите мне! Почему это нельзя перебирать по строкам?

ответ

0

Иногда внутренние CSS-селектора не имеют совпадений, поэтому at_css(...) возвращает нуль, что, вероятно, вызывает .content, чтобы терпеть неудачу. Попробуйте это вместо:

doc.css("table.judtbl tr").each do |tr| 
    title = tr.at_css(".title p") 
    citation = tr.at_css(".citation p") 
    next unless title && citation # Skip the row if it has no title/citation. 
    puts "OK: #{title.text} -- #{citation.text}" 
end 
Смежные вопросы