Html 如何使用Nokogiri获取没有类名、ID或任何属性的DIV?

Html 如何使用Nokogiri获取没有类名、ID或任何属性的DIV?,html,ruby-on-rails,ruby,nokogiri,Html,Ruby On Rails,Ruby,Nokogiri,我正在使用Nokogiri(与Rails一起)来尝试和解析,而Nokogiri并不配合。我使用css选择器完成了整个HTML链,一切正常,然后我遇到了一个没有类名或ID的普通DIV。我需要访问这个DIV中的内容,但无法访问。另外,代替这个没有类或ID的div,Nokogiri返回给我一个ID名为的div,如果你检查现场,它在任何地方都不存在 在我的图片中,我已经用id=“depth chart page wrapper”在div中创建了它,但是我需要用class=“depth chart wa

我正在使用Nokogiri(与Rails一起)来尝试和解析,而Nokogiri并不配合。我使用css选择器完成了整个HTML链,一切正常,然后我遇到了一个没有类名或ID的普通DIV。我需要访问这个DIV中的内容,但无法访问。另外,代替这个没有类或ID的div,Nokogiri返回给我一个ID名为的div,如果你检查现场,它在任何地方都不存在

在我的图片中,我已经用id=“depth chart page wrapper”在div中创建了它,但是我需要用class=“depth chart wall”到达div,但是它被包装在一个没有类、id或任何属性的普通div中,我找不到方法来获取这个元素

到目前为止,我使用了以下语句:

我的结果是:

我的结果是,类为“block_________内容”的div有三个孩子:

  • h1类“块标题”
  • Nokogiri::XML::Text:0x3fc184f8aa18“\n”
  • id为“rw深度图表值”的div
  • 但是,如果您查看站点上HTML的结构,您应该只看到两个:

  • h1类“块标题”
  • 没有类名或id的div

  • 如上所述,如果您检查站点,您将看到整个站点中没有ID为“rw深度图表值”的元素。为什么Nokogiri会返回这个值,为什么我不能像访问其他所有内容一样访问普通div?

    请将相关代码作为文本包含在问题中,而不是作为屏幕截图。如果知道元素的位置,可以使用css伪选择器<代码>:第一个,
    :第n个孩子
    :第n个类型
    等等。您也不必将一百万个调用链接到
    .css
    。如果一个元素有一个ID,它在页面上应该是唯一的。你不必一路爬到树上去。@max,我尽可能地包含代码,但堆栈溢出一直告诉我它的格式不正确,即使我将它包含在代码块中。另外,我想访问的div没有ID。我会使用伪选择器,但由于某些原因,Nokogiri返回的内容与页面上的内容不同。是的,我得到了。你不明白的是,做
    .css('foo').css('bar').css('baz')
    是毫无意义的。您只需从
    #baz
    开始即可。页面的格式也可能不正确。这种肩胛骨非常脆弱,我不推荐它,除非它是为了学习或大便和咯咯笑。@max,我正在学习,我正在完成我的第一个网络开发课程。我也很欣赏这个建议,注意不要使用长链调用。即使页面格式不正确,Nokogiri返回我检查页面时似乎不存在的DIV是否有意义?啊。现在我明白了。在浏览器中关闭JS,然后打开页面。这就是Nokogiri看到的。您在inspector中查看的内容是用Ajax加载的。Nokogiri不是浏览器,也不运行javascript。