You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何指定Jsoup返回的超链接数量?Java实现仅返回前10个链接

提取网页前10个超链接的实现方法

这里有几种简单可行的方法来实现只返回前10个超链接:

方法1:循环中加入计数器终止逻辑

直接在遍历循环里添加计数器,当计数达到10时跳出循环,只会处理前10个链接。修改后的代码如下:

import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  
import java.io.IOException;

public class link_demo {  
     public static void main( String[] args ) throws IOException{  
            Document doc = Jsoup.connect("http://www.javatpoint.com").get();  
            Elements links = doc.select("a[href]");  
            int count = 0;
            for (Element link : links) {  
                if (count >= 10) {
                    break;
                }
                System.out.println("link : " + link.attr("href"));  
                System.out.println("text : " + link.text());  
                count++;
            }       
     }  
}

方法2:使用Jsoup选择器直接限制结果数量

利用Jsoup的:lt(n)选择器(lt是less than的缩写),在select阶段就只获取前10个符合条件的链接元素,代码更简洁:

import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  
import java.io.IOException;

public class link_demo {  
     public static void main( String[] args ) throws IOException{  
            Document doc = Jsoup.connect("http://www.javatpoint.com").get();  
            // 使用:lt(10)选择前10个带href属性的a标签
            Elements links = doc.select("a[href]:lt(10)");  
            for (Element link : links) {  
                System.out.println("link : " + link.attr("href"));  
                System.out.println("text : " + link.text());  
            }       
     }  
}

方法3:利用List的subList方法截取前10个元素

因为Elements类实现了List<Element>接口,所以可以用subList方法直接截取前10个元素,同时用Math.min处理网页链接不足10个的情况,避免索引越界:

import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
import org.jsoup.nodes.Element;  
import org.jsoup.select.Elements;  
import java.io.IOException;
import java.util.List;

public class link_demo {  
     public static void main( String[] args ) throws IOException{  
            Document doc = Jsoup.connect("http://www.javatpoint.com").get();  
            Elements links = doc.select("a[href]");  
            // 截取前10个元素,如果链接总数不足10则取全部
            List<Element> top10Links = links.subList(0, Math.min(10, links.size()));  
            for (Element link : top10Links) {  
                System.out.println("link : " + link.attr("href"));  
                System.out.println("text : " + link.text());  
            }       
     }  
}

内容的提问来源于stack exchange,提问作者Farkhad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:01:17