【发布时间】: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