解析/抓取-遍历html文档时是否可以跳过同一类中的元素?

时间:2019-01-24 22:25:46

标签: ruby parsing web-scraping

我正在尝试从特定页面抓取数据。大部分情况下一切正常,但我无法提取我想要的两个特殊“行”的标签和值,因为“ att.item”类中有两个“ itet att-labels”,而其他所有“” 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 ...}(与护甲相同)

0 个答案:

没有答案