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%的问题都在官网找到了方法。