-1

因此,我正在使用 Nokogiri 循环浏览页面上的链接列表,并将所有链接推送到 2D 数组中。问题是它正在推动nil一些我不想要的元素。

如何强制它跳过 nil 的元素,所以我的数组只有链接而不是一些链接和一些 nil 值?

见代码:

url = 'http://www.craigslist.org/about/sites'

def my_list(url)
    root = Nokogiri::HTML(open(url))
    list = root.css("a").map do |link|
        if link[:href] =~ /http/
            [link.text, link[:href]]   
        end        
    end
end

想法?

PS我试过if link[:href].nil?了,但我不知道如何告诉它跳过那个特定的link元素。

4

2 回答 2

1

您可以对列表进行后处理,因为 root 似乎不支持所有收集方法,请在方法结束时尝试此操作以清理它。它会丢弃所有的零。

list = list.reject {|x| x.nil?}
于 2012-04-18T21:58:25.023 回答
0

你可以试试:

list = root.css("a").reject!{|l| l[:href].nil?}.map do | link |
于 2012-04-18T21:53:07.027 回答