【发布时间】:2016-11-30 18:38:14
【问题描述】:
我想获取图片中的文本,在 Google Developer Tools 中我会这样做(我基本上进入跨度的另一个子节点以在 DevTools 中找到 md5,但在 Jsoup 中它似乎不同,只返回“md5”文字)
document.getElementById("additional-info-content").childNodes[1].children[1].childNodes[1].innerHTML
我无法使用 JSoup dom/selector 来获取它。 (如果可以同时给出这两个例子)
2.
如何在 Jsoup 中的 CSS 中指定子级? 比如我右击图中蓝色标记线上方的span class字段,点击“复制选择器”:
#file-details > div:nth-child(2) > div:nth-child(1) > span
它给了我文件详细信息作为第一个 div,甚至认为它不是文档中唯一的文件详细信息,但是好吧,可以说它应该是这样的(?):
#additional-info-content > div:file-details > div:nth-child(2) > div:nth-child(1) > span
我如何设法将它翻译成与孩子一起工作的 JSoup CSS 脚本? (如果可能,还有 DOM 示例)
3.
在查找特定值/节点时,是否对如何查找以及如何找到正确的路径有很好的见解?
我现在所做的基本上是打开开发者工具,然后单击一个唯一的 div 类名,然后我在 DevTools 中的属性窗口中检查子节点,并继续挖掘子节点直到找到正确的路径。 ..(就像我在第一个问题中复制的那样)
有没有更好的方法来看待这个问题?
我的意思是,使用 DevTools 控制台是如此简单,只需编写 .children[1].childnodes[3].children[1] 同时查看属性并查看我需要的正确属性,但我知道这不是我猜的正确方式?
【问题讨论】:
-
你好。请ask one question per post。此外,由于 jsoup 是 Java 库,因此使用
java标签而不是javascript可能会得到更好的响应。 -
您的第一个和第二个问题的答案可能在这里jsoup.org/cookbook/extracting-data/selector-syntax 和元素/元素文档中(如果您对单独处理文本节点感兴趣,也可以使用 Node)。
-
那么我应该编辑问题并再创建 2 个线程吗?而且我已经看过它,但我仍然无法获得我需要的正确值:(。
-
是的,尝试在帖子中一次只关注一件事。如果您对代码有特定问题,最好在帖子中包含您的代码尝试 (SSCCE / minimal reproducible example)。
-
好吧,我想这次我要把它们放在一起,因为它们都与彼此和图片相关,我将编辑并添加代码来自的网站,以便人们能够查看它在图片旁边。下次我会这样做,非常感谢 Pshemo