Ruby 使用Nokogiri和每个方法返回零的屏幕抓取
我正在运行以下代码:Ruby 使用Nokogiri和每个方法返回零的屏幕抓取,ruby,nokogiri,Ruby,Nokogiri,我正在运行以下代码: 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.
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中获得了整个行列表。为什么在使用each方法时它返回零,以及如何修复它?。每个
都不返回任何内容,它是一个简单的迭代器。也许您正在寻找.map
这将返回锚元素文本的数组:
doc.css(".row").map {|row| row.css("a").text }
您不需要发出两个不同的css查询;您可以将它们组合在一起:
doc.css(".row > a").map(&:text)
你想干什么?你没有对你提取的文本做任何事情,这是一项正在进行的工作。这是我第一次玩Nokogiri。很好,但是NodeSet#由于某些原因,每个都返回0。