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