Nokogiri的条件处理

时间:2018-07-25 14:05:39

标签: ruby nokogiri

我正在从网络上抓取一些内容。并希望仅在我们发现一些数据的情况下保存一些数据。我的代码如下:

rm = visa.ResourceManager()

这里的问题。当我在做

rm = visa.ResourceManager('@py')

有时套索上的子代没有css(“ h2 a”),应用程序中断并抛出错误。

如何做最好的方法“嘿。如果您的DOM上没有“ h2和a”,只需转到下一个元素?但是,如果有,请执行其他处理?

2 个答案:

答案 0 :(得分:1)

可以使用next关键字来提高Ruby中的循环。因此,您可以执行以下操作:

@all_jobs.each do |job|
  link = job.at_css("h2 a")
  next unless link

  @url = link['href']
  ... 
end

答案 1 :(得分:0)

您可以这样做:

@url = job_parse_page.at_css("h2 a,[href]")['href'] rescue 'no href!'

它将查找h2 a,然后查找具有href属性的任何内容,并使用“ no href!”进行救援