2013-04-21 44 views
0

我正在尝试为匹配我的CSS选择器的每个结果创建一个散列。就目前而言,每页大约有10个结果,但是我想为每个结果创建一个散列。最好的办法是什么?Nokogiri-为每个刮取的结果创建一个散列

或者它可能是有意义的,以限制在nokogiri中找到的结果数量?

listing_data = @nodes 




listing = { 


    :url => listing_data.css('div#content div.content_inner div.section div.supercolumn div.column div.block div.items div#pages div.unsponsored div.item.compact div.item_inner div.photo a img.tiny').text, 
    :price => listing_data.css('div#content div.content_inner div.section div.supercolumn div.column div.block div.items div#pages div.unsponsored div.item.compact div.item_inner div.more h3 span').text 
} 
end 
+0

一个哈希关键字是什么?目前还不清楚你在问什么。而“限制结果的数量”似乎是一个完全不同的问题,这与你所问的有什么关系? – 2013-04-21 20:15:34

+0

我认为你是对的。假设我正在查看eBay搜索结果页面。我想为每个单独的结果做一个散列,包括价格,剩余时间和网址。我的问题是我创建了散列,而CSS选择器给我所有的搜索结果。我正在寻找一种方法来为每个散列做一个散列,而不是将它们全部集中在一个散列中。谢谢! – user2305248 2013-04-21 20:17:29

+0

我还是不明白这个问题; Nokogiri给你一个你的选择器的迭代器:创建哈希并将其添加到数组或集合中。 – 2013-04-21 20:26:31

回答

0

所以listing_data.css返回结果的阵列(或类似的东西)?这里粗略的代码示意图:

urls = listing_data.css('selector here') 
prices = listing_data.css('another selector') 
result = urls.zip(prices).map do |url,price| 
    {:url => url, :price => price} 
end 
+0

谢谢!很有帮助。 – user2305248 2013-04-21 21:57:07

相关问题