Java 使用jsoup在站点上查找特定文件
所以我正在尝试创建一个小程序,为我更新魔兽世界插件。Im使用jsoup获取特定站点上的链接列表。如何忽略不是以.zip结尾的文件/链接 这是我到目前为止的链接列表,正如你所看到的,它将打印出网站上所有链接的列表。目标是只查找.zip文件(只有两个)。然后下载其中一个。每次更新插件时直接链接下载更改,所以我不能只下载特定链接。我每次都需要找到最新的版本Java 使用jsoup在站点上查找特定文件,java,hyperlink,zip,jsoup,Java,Hyperlink,Zip,Jsoup,所以我正在尝试创建一个小程序,为我更新魔兽世界插件。Im使用jsoup获取特定站点上的链接列表。如何忽略不是以.zip结尾的文件/链接 这是我到目前为止的链接列表,正如你所看到的,它将打印出网站上所有链接的列表。目标是只查找.zip文件(只有两个)。然后下载其中一个。每次更新插件时直接链接下载更改,所以我不能只下载特定链接。我每次都需要找到最新的版本 public static void LinkList() { Document doc; try { doc
public static void LinkList() {
Document doc;
try {
doc = Jsoup.connect("http://www.tukui.org/dl.php").get();
Elements links = doc.select("a[href]");
for (Element link : links) {
System.out.println("\nlink : " + link.attr("href"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
您可以使用
[attr$=value]
选择器检查属性是否以值
结尾
Elements links = doc.select("a[href$=zip]");
演示:
谢谢。有没有办法将列表保存到数组中?@user2599508这是什么意思?您希望它保存哪种类型的数组<代码>元素[]
,字符串[]
,其他?字符串。每次我想使用它时,我想要的那个可能会在数组中的同一个位置,这意味着我以后可以使用数组来实际下载我想要的文件,即@user2599508我用代码更新了我的答案,这些代码将输出放入字符串数组中,但我可能不会返回数组,而只返回List
,因为它将具有相同的值,并且您可以以与数组相同的方式使用它。
Document doc = Jsoup.connect("http://www.tukui.org/dl.php").get();
Elements links = doc.select("a[href$=zip]");
List<String> list = new ArrayList<>();
for (Element link : links) {
System.out.println("link : " + link.attr("href"));
list.add(link.attr("href"));
}
String[] arr = list.toArray(new String[list.size()]);
System.out.println("array content:" + Arrays.toString(arr));
link : http://www.tukui.org/downloads/tukui-15.79.zip
link : http://www.tukui.org/downloads/elvui-6.82.zip
link : /client/win/tc2430.zip
array content:[http://www.tukui.org/downloads/tukui-15.79.zip, http://www.tukui.org/downloads/elvui-6.82.zip, /client/win/tc2430.zip]