Java Jsoup eq选择器不返回任何值
尝试使用Java Jsoup eq选择器不返回任何值,java,jsoup,html-parsing,Java,Jsoup,Html Parsing,尝试使用jsoup1.10.3获取数据时,似乎eq选择器工作不正常 我尝试了第n个孩子,但似乎没有得到第二个表(表:第n个孩子(2)) 我的选择器正确吗 html > body > table:nth-child(2) > tbody > tr:nth-child(2) > td:nth-child(2) 在下面的示例中,尝试提取值2323 您可能正在努力解决几个问题。首先,我认为您不想使用:n子级(an+b)选择器。以下是该选择器的说明: :n在文档树中具有+
jsoup1.10.3
获取数据时,似乎eq
选择器工作不正常
我尝试了第n个孩子,但似乎没有得到第二个表(表:第n个孩子(2))
我的选择器正确吗
html > body > table:nth-child(2) > tbody > tr:nth-child(2) > td:nth-child(2)
在下面的示例中,尝试提取值2323
您可能正在努力解决几个问题。首先,我认为您不想使用
:n子级(an+b)
选择器。以下是该选择器的说明:
:n在文档树中具有+b-1同级的子(an+b)元素,对于任何正整数值或零值n,并且具有父元素。对于大于零的a和b的值,这将有效地将元素的子元素划分为a元素的组(最后一组取余数),并选择每个组的bth元素。例如,这允许选择器寻址表中的每一行,并可用于在四个循环中交替段落文本的颜色。a和b值必须是整数(正、负或零)。元素的第一个子元素的索引为1
我想您应该使用类型(n)的:table:nth
选择器
其次,您仅使用选择器选择元素,但希望获得可见内容2323,这只是您选择的元素的一个内部节点。因此,缺少的是你获取内容的部分。有几种方法可以做到这一点。我再次建议您阅读文档。特别是对初学者非常有帮助。我想你可以用这样的东西:
String content = element.text();
String content = document.select("table:nth-of-type(2) tr:nth-of-type(2) td:last-of-type").text();
第三,使用CSS选择器,您确实需要遍历DOM的每个层次结构级别。由于表始终包含tbody
和tr
和td
元素,因此可以执行以下操作:
String content = element.text();
String content = document.select("table:nth-of-type(2) tr:nth-of-type(2) td:last-of-type").text();
注意,我手头没有java编译器。请小心使用我的代码。你能把你得到的结果和你期望的结果放在一个简单的HTML文档示例中吗?添加了一个链接,上面写着#这是试用示例#