【问题标题】:Getting a specified number results when parsing with mechanize使用 mechanize 解析时获得指定数字的结果
【发布时间】:2014-02-27 15:05:45
【问题描述】:

我正在解析 CNN.com,以获取前五名新闻商店的第一段。我有以下代码。

url = "http://edition.cnn.com/?refresh=1"
agent = Mechanize.new
page = agent.get("http://edition.cnn.com/?refresh=1")
page.search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a").map{|a|  page.uri.merge a[:href]}.each do |uri| 
 article = agent.get(uri).parser
 puts article.css(".adtag15090+ p").text
 puts "\n"
end

它并不完美,但它可以工作,但是,它检索所有文章但我只想检索五篇文章。有没有办法使用范围将结果数限制为五个?

【问题讨论】:

    标签: ruby nokogiri mechanize-ruby


    【解决方案1】:

    简单的方法是在search 之后添加一个数组切片。 Nokogiri 从searchNodeSet supports [] 返回一个NodeSet:

    page.search("//div[@id='cnn_maintt2bul']/div/div/ul/li[count(*)=3]/a")[0, 5]...
    

    【讨论】:

      猜你喜欢
      • 2015-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 2012-04-27
      • 1970-01-01
      • 2011-06-02
      • 2012-06-17
      相关资源
      最近更新 更多