我正在尝试抓取一个不使用类或 ID 的网站,其结构如下:
<div>
<div>
<div>
Some content
</div>
</div>
<div>
Other content
<div>
</div>
我正在尝试类似的操作doc.css('div div')
,但这会返回内容的重复项,因为嵌套容器都与该选择器匹配。
在知道巢的底部深度不一样的情况下,如何仅选择巢的底部?
另一种表达问题的方式是,有没有办法做类似“没有 div 子项的 div”之类的事情?它可能有其他孩子,只是没有 div
编辑:
试图澄清一下,用上面的 html 我可以调用:
doc.css('div div').map(&:text)
获取文档的文本,按div分成一个数组。问题是,该行返回“Some content”两次,因为即使它在 html 中存在一次,但有两个“div div”与该文本匹配。
此代码查找所有叶元素并检查它们是否是 div。这就是我假设你想要做的事情。