jsoup 使用总结2--高级用法之 :gt(n)

时间:2023-03-09 03:46:48
jsoup 使用总结2--高级用法之 :gt(n)

jsoup 使用总结2--高级用法之 :gt(n)

大部分时候,我们使用jsoup解析网页的时候,都是直接找到某一类元素,或者按某种selector查询;具体使用方法可以参考jsoup官网文档

部分html代码:

<div class="example_row">
<a href="http://www.example.com/news.html" target="_blank">真相</a></h3>
<a href="http://www.example.com/news/cat/13" target="_blank">今日头条</a>
<a href="http://www.example.com/news/cat/16" target="_blank">各地新闻</a>
<a href="http://www.example.com/news/cat/14" target="_blank">行业报告</a>
<a href="http://www.example.com/news/cat/15" target="_blank">*政策</a>
<a href="http://www.example.com/news/cat/18" target="_blank">疾病防护</a>
<a href="http://www.example.com/news/cat/20" target="_blank">科普</a>
</div>

java代码:

Document doc = Jsoup.connect("www.example.com").timeout(0).get();
Elements links = doc.select("div.example_row").select("a");
for(Element link : links)
{
String linkHref = link.attr("href");
String linkText = link.text();
...
}
Element link = doc.select("a").first();
Element link_2 = doc.select("a").last();

如何我们想直接找到"*政策"的DOM元素呢,有没有其他方式

当然有了,下面是代码:

 Element link = doc.select("div.example_row").select("a:eq(4)");
// 4 对应 一个div example_row 下所以a元素的数组的下标
String linkText = link.text(); // *政策

当然这里的例子比较简单,但是eq(n)的用法我是交给你了呀。

同理还有:

:lt(n)
:gt(n)

希望能解决你手边的问题。

另外推荐阅读jsoup的官网文档,我80%的问题都在官网找到了方法。