У меня есть HTML-документ:Как разобрать данные после определенных слов
<div class="info">
Country:
<b>UK</b>
<br>
City:
<b>London</b>
<br>
Name:
<b>Jon</b>
<br>
Date:
<b>12.08.2014</b>
<br>
</div>
Для синтаксического анализа я использую:
name = review_meta.search('.info b')[2].text
country = review_meta.search('.info b')[0].text
city = review_meta.search('.info b')[1].text
data = review_meta.search('.info b')[3].text
Этот код не является хорошим, потому что порядок и количество элементов может изменяться ,
Как я могу анализировать данные после определенных слов?
UPD: In Nokogiri we can use JS selectors. Но в моем случае все равно проанализируйте только первый элемент.
require 'nokogiri'
html = <<_
<div class="info">
Country:
<b>UK</b>
<br>
City:
<b>London</b>
<br>
Name:
<b>Jon</b>
<br>
Date:
<b>12.08.2014</b>
<br>
</div>
_
doc = Nokogiri::HTML(html)
country = doc.at('.info:contains("Country:") b').text
city = doc.at('.info:contains("City:") b').text
name = doc.at('.info:contains("Name:") b').text
date = doc.at('.info:contains("Date:") b').text
puts country, city, name, date # => UK UK UK Uk
Как это исправить?
Всегда ли KEY: VALUE 'следует/разделяется'
'? – Stefan
есть. но число
может отличаться ( – alexin