首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Anemone / Nokogiri网络刮刀处理NILs?

如何使用Anemone / Nokogiri网络刮刀处理NILs?
EN

Stack Overflow用户
提问于 2013-08-13 20:47:58
回答 1查看 142关注 0票数 0
代码语言:javascript
复制
def scrape!(url)   
  Anemone.crawl(url) do |anemone|   
     anemone.on_pages_like %[/events/detail/.*] do |page|   
      show = {   
        headliner: page.doc.at_css('h1.summary').text,   
        openers: page.doc.at_css('.details h2').text
       }   
      puts show   
    end   
  end   
end    

在Anemone中写一个刮刀,它在引擎盖下使用Nokogiri。

有时,选择器.details h2'不返回任何内容,因为它不在HTML中,并且调用text会引发异常。

我想避免到处乱跑.

代码语言:javascript
复制
   if page.doc.at_css('.details h2').empty?   
      openers: page.doc.at_css('.details h2').text
   end

是否有更有说服力的方法来处理不一致标记所产生的错误?例如,CoffeeScript有存在性操作符person.name?.first()。如果HTML有元素,那么很好地创建对象并调用它上的文本。如果不是,继续前进,不要将其添加到散列中。

EN

回答 1

Stack Overflow用户

发布于 2013-09-02 20:48:49

你只需要做:

代码语言:javascript
复制
anemone.on_pages_like %[/events/detail/.*] do |page|   
      if not page.nil?
         ...#your code
      end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18218944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档