Разбор / очистка - возможно ли пропустить элементы в одном классе при циклическом просмотре HTML-документа? - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь собрать данные с определенной страницы. По большей части все в порядке, но я не могу извлечь метки и значения, которые мне нужны, для двух конкретных «строк», потому что в классе «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 ...} (и то же самое для брони)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...