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

如何使用Jsoup获取页面中所有带src属性的script标签

现有实现缺失的逻辑

你的代码存在3个核心问题,导致无法拿到所有script标签的src属性:

  • 没有针对src属性做筛选,遍历范围包含了所有内联script标签(即没有src、直接写脚本内容的标签)
  • 取值逻辑错误,调用data()方法只能获取标签内部的文本内容,没有调用属性读取方法获取src值
  • 循环中加了break关键字,匹配到第一个type为text/javascript的script就会终止遍历,无法拿到全部符合要求的标签
调整后的实现

可以直接用Jsoup的属性选择器精准筛选目标标签,省去冗余的类型判断,代码如下:

Document doc = Jsoup.connect("http://www.example.com").timeout(10000).get();
// 选择所有带src属性的script标签
Elements scripts = doc.select("script[src]");

for (Element script : scripts) {
    // 读取src属性值,如果需要获取带域名的完整绝对路径,换成script.absUrl("src")即可
    String srcValue = script.attr("src");
    // 按需处理拿到的src值,比如存入集合、打印等
    System.out.println(srcValue);
}
可选扩展

如果需要严格过滤仅JS类型的外部脚本,可以把选择器替换为script[src][type="text/javascript"],注意现在默认不带type属性的script标签都会被浏览器识别为JavaScript脚本,非特殊场景不需要加这个过滤条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:21:20