使用jsoup在站点上查找特定文件

时间:2013-12-07 17:55:02

标签: java hyperlink zip jsoup

所以我正在尝试为我创建一个更新魔兽世界插件的小程序。我使用jsoup获取特定网站上的链接列表。如何忽略不以.zip结尾的文件/链接?

到目前为止,这是我的链接列表,您可以看到它将打印网站上所有链接的列表。目标是只找到.zip文件(只有两个)。然后下载其中一个。每次更新插件时都会直接下载更改链接,因此我无法下载特定的链接。我每次都需要找到最新版本。

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();
    }
    }

1 个答案:

答案 0 :(得分:2)

您可以使用[attr$=value]选择器检查attribute是否以value结尾

Elements links = doc.select("a[href$=zip]");

演示:

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]