Я пытаюсь собрать данные с определенной страницы. По большей части все в порядке, но я не могу извлечь метки и значения, которые мне нужны, для двух конкретных «строк», потому что в классе «att.item» есть две «метки элемента att», когда для всех остальных » Элементы класса att-item 'для каждого элемента есть только одна метка.
Это страница: https://wiki.eveuniversity.org/Atron
Две рассматриваемые строки - это последние два атрибута корабля: «Щиты» и «Броня»
Я хотел бы иметь возможность пропустить первую метку 'Shield Capacity' и ее значение, чтобы я мог получить доступ и сохранить вторую, которая содержит все сопротивления и их значения.
Первая итерация .each правильно собирает всю информацию из атрибутов корабля, вторая - попытка захватить щиты и броню, но она не работает (как объяснено выше).
result = {}
html_doc.css(".att-item").each do |item|
label = item.css(".att-label").text
value = item.css(".att-value").text
result[label] = value
end
html_doc.css(".att-item > .item").each do |item|
label = item.css(".att-label").text
value = {
label => item.css(".att-label").text,
value => item.css(".value-text").text
}
result[label] = value
end
В конечном итоге, когда я распечатываю результат, я бы хотел увидеть:
Сопротивление щиту => {'EM' => 0, 'Thermal' => 20 ...} (и то же самое для брони)