我正在运行以下代码:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
url = "http://sfbay.craigslist.org/search/sss?query=bike&catAbb=sss&srchType=A&minAsk=&maxAsk="
doc = Nokogiri::HTML(open(url))
doc.css(".row").each do |row|
row.css("a").text
end
我唯一得到的是0
。但是,当我运行doc.css(".row")
时,我会从CL获取整个行列表。当我使用每种方法时为什么它返回零,我该如何修复它?
答案 0 :(得分:2)
.each
不返回任何内容,它是一个简单的迭代器。也许您正在寻找.map
?
这将返回一个锚元素文本数组:
doc.css(".row").map {|row| row.css("a").text }
答案 1 :(得分:1)
您不需要发出两个不同的css查询;你可以把它们结合起来:
doc.css(".row > a").map(&:text)