gpt4 book ai didi

java - java + jsoup 中的 html 响应

转载 作者:行者123 更新时间:2023-12-01 10:40:52 26 4
gpt4 key购买 nike

我正在使用Java并使用JSoup来获取网页的响应。

当我在 html 文件中打印文档时,我无法按原样获取页面。原因是它看起来 css 和 js 路径错误。

这是回应,

    <link href="../Style/STYLE.css" rel="stylesheet" type="text/css">
<link href="../Style/NKN.css" rel="stylesheet" type="text/css">
<link href="../Style/main.css" rel="stylesheet" type="text/css">
<script src="../Script/Validation.js" type="text/javascript"></script>
<script src="../Script/grid.js" type="text/javascript"></script>
<script src="../Script/api.js" type="text/javascript"></script>

当我在网页 View 源中查看此内容并单击 css 时,它会转到其他网址,如下所示,

    <link href="http://www.url.com/Style/STYLE.css" rel="stylesheet" type="text/css">
<link href="http://www.url.com/Style/NKN.css" rel="stylesheet" type="text/css">
<link href="http://www.url.com/Style/main.css" rel="stylesheet" type="text/css">
<script src="http://www.url.com/Script/Validation.js" type="text/javascript"></script>
<script src="http://www.url.com/Script/grid.js" type="text/javascript"></script>
<script src="http://www.url.com/Script/api.js" type="text/javascript"></script>

我找到了一种使用 Jsoup 使用 Elements 获取绝对网址的方法,如下所示,

    Elements links = document.select("link[href]");
for (Element link : links) {
system.out.println(link.attr("abs:href"));
}

但它仅对迭代和打印链接有用,我如何在响应文档中替换。

最佳答案

只需使用 replaceAll()将所有 href=".. 替换为链接的方法

    String response = getResponse(); //assuming that gerResponse is your function returning response of webpage
String withLinks = response.replaceAll("href=\"..", "href=\"http://www.url.com");

您也可以对src等执行此操作

<小时/>

编辑:如果您需要删除 URL 的最后一部分(带参数的脚本名称),您可以获取从开头到最后一个“/”符号的子字符串

    response = response.subString(0, response.lastIndexOf("/"))

然后替换所有网址

关于java - java + jsoup 中的 html 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34409557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com