我正在爬取的内容包含一些空白元素。我需要停止变量的设置,如果没有数据的话(最好),或者只需稍后进行一些操作,并完全删除包含空白的哈希。
这是我的抓取代码:
eqs = []
nokogiri_page.xpath('//table/tr').each do |row|
date = row.xpath('td[1]/a/text()').text.strip
location = row.xpath('td[5]/text()').text.strip
eqs.push(
date: date,
location: location
)
end
其中一些是空的,我事先不知道哪些是空的。所以我尝试对数组进行迭代,并使用以下方法删除空值:
eqs.each do |event|
event.reject! {|k, v| v.empty? || v==" " || v=="" }
end
这成功地删除了空键和值,但我仍然有空的花括号...
输出:
[
{},
{},
{},
{
:date=>"2016-12-14 13:19:55",
:location=>"Myanmar"
},
{
:date=>"2016-12-13 17:57:04",
:location=>"Northern Sumatra, Indonesia"
}
]
我希望完全摆脱空的哈希表!有人知道我在这里做错了什么吗?
reject!
,所以从顶层数组中reject!
掉你不想要的元素。 - user229044eqs.reject(&:empty?).each...
- Andrey Deineko