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

Jsoup获取网页图片绝对路径遇阻,abs:src用法求助

解决Jsoup获取图片绝对路径的问题

你遇到的核心问题是没有给Jsoup的Document设置基础URI(Base URI),直接用Jsoup.parse(html)解析字符串的话,Jsoup不知道相对路径应该基于哪个域名来拼接,所以abs:src自然无法生效。下面给你具体的修改方案:

关键修改点

  • 解析HTML时,必须传入目标网站的基础URL作为第二个参数,让Jsoup明确相对路径的基准域名
  • 获取属性时使用abs:src替代src,就能直接拿到拼接好的绝对路径

修改后的完整代码

<cfhttp method="get" url="https://theculturecook.com/recipe-slowroasted-pork-belly.html" result="theresult">
<cfscript>
    Jsoup = createObject("java", "org.jsoup.Jsoup");
    html = "#theresult.filecontent#";
    // 传入网站基础URI作为第二个参数,是abs:src生效的核心
    doc = Jsoup.parse(html, "https://theculturecook.com/");
    tags = doc.select("img[src$=.jpg]");
</cfscript>
<cfset images = "">
<cfloop index="e" array="#tags#">
    <cfoutput>
        // 使用abs:src获取绝对路径
        <cfset images = ListAppend(images, e.attr("abs:src"))>
    </cfoutput>
</cfloop>
<cfloop list="#images#" index="a">
    <cfoutput>#a#<br></cfoutput>
</cfloop>

灵活优化方案

如果你的目标页面URL可能动态变化,也可以直接用cfhttp返回的请求URL作为base URI,这样不用硬编码域名:

doc = Jsoup.parse(html, theresult.url);

这样修改后,你就能顺利获取到所有图片的完整绝对路径了~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 15:52:30