我有这个简单的例子来说明我的问题: 这是一个html页面test.html:
<body>
<div class="partA">
part a
</div>
<script></script>
<div class="partB">
part b
</div>
<div class="partC">
part c
</div>
<div class="parthh">
<div>
part b 2
</div>
<div class="partD">
part d
</div>
</div>
</body>
这是我的代码java:
public static void main(String[] args) throws IOException {
Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8");
Elements el = doc.select("body > div:eq(1)");
System.out.println(el.toString());
}
标记&#39;脚本&#39;的问题或其他标签出现在我的diserd标签之前(在这种情况下是第二个div)阻止了良好的代码执行,返回的结果为空。
请问我怎么能忽略那些不明确的标签并得到具体的标签。
答案 0 :(得分:1)
您可以从script
HTML
代码
Document doc = Jsoup.parse(new File("C:\\Users\\HC\\Desktop\\dataset\\test.html"), "UTF-8");
Elements el = doc.select("script");
for (Element e : el) {
e.remove();
}
el = doc.select("body > div:eq(1)");
System.out.println(el.toString());
现在您的文档不会包含该标记,您将获得所需的输出。
答案 1 :(得分:1)
选择器body > div:nth-of-type(2)
不是您要找的吗?