当前位置: 首页 > 面试题库 >

使用Java的完整链接提取

赫连棋
2023-03-14
问题内容

我的目标是在从链接读取href属性时始终获取相同的字符串(在我的情况下为URI)。举例:假设认为,一个HTML文件,它有一个像somany链接
a href="index.html">,但基本域是http://www.domainname.com/index.html
a href="../index.html">但基本域是http://www.domainname.com/dit/index.html
如何我可以正确获取所有链接意味着完整链接包括域名吗?
我如何在Java中做到这一点?
输入是HTML,也就是说,需要从一堆HTML代码中提取正确的链接


问题答案:

您可以使用像Jsoup这样的功能强大的HTML解析器来执行此操作。有一个Node#absUrl()这不正是你想要的东西。

package com.stackoverflow.q3394298;

import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class Test {

    public static void main(String... args) throws Exception {
        URL url = new URL("https://stackoverflow.com/questions/3394298/");
        Document document = Jsoup.connect(url).get();
        Element link = document.select("a.question-hyperlink").first();
        System.out.println(link.attr("href"));
        System.out.println(link.absUrl("href"));
    }

}

它会为您当前问题的标题链接打印(正确)以下内容:

/ questions / 3394298 / full-link-extraction-using-java
https://stackoverflow.com/questions/3394298/full-link-extraction-using-java

为了您的目的,Jsoup可能还有其他(未发现的)优势。

更新 :如果要选择文档中的 所有 链接,请执行以下操作:

        Elements links = document.select("a");
        for (Element link : links) {
            System.out.println(link.attr("href"));
            System.out.println(link.absUrl("href"));
        }


 类似资料:
  • 完整的利用链 至此,我们已经讨论了很多方面来说明如何远程漏洞利用这辆吉普和类似的车型。目前为止,这些信息已经足够你实现完整的漏洞利用,但是我们想要总结一下漏洞链是如何自始至终发挥作用的。 识别目标 你需要车辆的IP地址。你可以随便选择一个或写一个蠕虫来入侵所有的车辆。如果你知道汽车的VIN或GPS,你可以根据你所了解的车辆停留位置来扫描其IP范围,直到发现对应的VIN或GPS。由于Sprint网络

  • 我试图提取JSOUP中给定元素中的链接。这里我做了什么但它不起作用: 我正在尝试做的事情是获得所有的链接与文章类。我想,也许首先我必须选择section class=“row”,然后从article类派生链接,但我无法使其工作。

  • 问题内容: 使用此XML示例: 我想要一个简单的方法来提取节点B的XML块,并返回XML字符串: 要检索此节点,我应该使用一些Java XPath库,例如XOM或Java XPath,但是我找不到如何获取完整的XML字符串。 问题答案: 添加到lwburk的解决方案中,要将DOM节点转换为字符串形式,可以使用Transformer: 完整的例子:

  • < code>doTask()是一个方法,如果< code>previousStepResult成功,则该方法执行某些操作,否则记录并按原样返回< code>previousStepResult。下面的代码工作正常,并且< code>conclude()也被执行,但是只有在没有异常(错误)的情况下。但是如果有异常(处理得很好),代码返回false。因此,在错误的情况下,下一步被称为罚款,如前所述,

  • 问题内容: 当我使用或不显示所有路径时(例如) 显示完整路径的linux命令是什么? 问题答案: 并非在所有Linux版本上都可用,但应该可用。 以上应该可以解决问题。 另外,如果您没有安装上述任一工具,那么如果安装了python 2.6(或更高版本),则可以执行以下操作

  • 问题内容: 我想实现一个Java方法,该方法以URL作为输入并将整个网页(包括CSS,图像,JS(所有相关资源))存储在磁盘上。我已经使用Jsoup html解析器来获取html页面。现在,我想实现的唯一选择是使用jsoup获取页面,现在解析html内容并将相对路径转换为绝对路径,然后再次请求获取javascript,图像等并将其保存在磁盘上。我还阅读了有关HTML清洁器,htmlunit解析器的