如何访问具有两个按空格划分的类的元素并删除所有其他类(nokogiri,Ruby on rails)



>我正在编写一个解析器,只想获取类名"row1 processing"的元素

  <tbody class = "processed"> some data1 </tbody> 
  <tbody class = "row1 props processed"> some data2 </tbody> 
  <tbody class = "row1 processed"> some data3 </tbody> 

通过宝石野科吉里。

我可以为 row1、processing、props 做;但我只需要 "row1 processing"

   test =  el.css('tbody.row1')
   test =  el.css('tbody.processed')

我该怎么做?

我在轨道上使用红宝石 5.2.2

更新

当我输入 el.css('tbody.row1.props') 时,它显示了来自这个的信息元素

 <tbody class = "row1 props processed"> some data2 </tbody> 

但是当我添加"处理"类时,我什么也没得到......

用点分隔多个类:

el.css('tbody.row1.processed')

正如 Ruby 开发者 Slack 频道上提到的,这里的根本问题是 Nokogiri 只能在被 JavaScript 修改之前从页面访问最初加载的 HTML(单击查看源代码时看到的内容)。这就是为什么在Nokogiri中无法访问它的原因,因为此时processed类尚未加载。如果 HTML 在页面加载时可用,则此处的另一个答案有效。

如果你需要在被 JavaScript 修改页面后对其进行修改,你有两个选择:要么使用 JavaScript 访问新修改的 DOM 元素,要么重新考虑如何解析网页以获得你想要的内容。

相关内容

  • 没有找到相关文章

最新更新