【问题标题】:How to get absolute URL parh without files如何获取没有文件的绝对 URL 路径
【发布时间】:2015-02-23 10:07:39
【问题描述】:

我需要获取没有文件链接的链接的绝对路径。我有这段代码可以让我获得链接,并且那里缺少一些链接。

public class Main {

public static void main(String[] args) throws Exception {
    URI uri = new URI("http://www.niocchi.com/");
    printURLofPages(uri);
}

private static void printURLofPages(URI uri) throws IOException {
    Document doc = Jsoup.connect(uri.toString()).get();
    Elements links = doc.select("a[href~=^[^#]+$]");

    for (Element link : links) {
        String href = link.attr("abs:href");
        URL url = new URL(href);
        String path = url.getPath();
        int lastdot = path.lastIndexOf(".");
        if (lastdot > 0) {
            String extension = path.substring(lastdot);
            if (!extension.equalsIgnoreCase(".html") && !extension.equalsIgnoreCase(".htm"))
                return;
        }
        System.out.println(href);
    }
}
}

这段代码让我找到以下链接:

http://www.enormo.com/
http://www.vitalprix.com/
http://www.niocchi.com/javadoc
http://www.niocchi.com/

我需要这个链接:

http://www.enormo.com/
http://www.vitalprix.com/
http://www.niocchi.com/javadoc
http://www.linkedin.com/in/flmommens
http://www.linkedin.com/in/ivanprado
http://www.linkedin.com/in/marcgracia
http://es.linkedin.com/in/tdibaja
http://www.linkody.com
http://www.niocchi.com/

非常感谢您的建议。

【问题讨论】:

  • URI 类有你需要的一切;你看过它的javadoc吗?
  • 另外,仅从 URI 路径,您根本无法轻易确定该路径是否是“文件”的“目录”
  • 有什么好方法可以检查它是否是文件?
  • 没有。您拥有的最好的方法是基于路径的狡猾的启发式方法。即使尝试获取 URL 也不能可靠地判断它是否引用了文件。
  • 我更新了获取绝对路径但缺少一些其他链接的代码。不知道哪里错了。非常感谢您的建议。

标签: java file url jsoup absolute-path


【解决方案1】:

而不是

String href = link.attr("href");

试试

String href = link.attr("abs:href");

编辑文档:http://jsoup.org/cookbook/extracting-data/working-with-urls

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 2016-07-23
    • 2012-01-19
    • 2012-04-24
    • 1970-01-01
    • 2010-09-18
    • 2012-08-27
    相关资源
    最近更新 更多