Напишите программу на Java, которая загрузит первые 100 комиксов веб-комикса XKCD. Обязательно используйте https: // для всех URL - PullRequest
0 голосов
/ 30 апреля 2018

Это то, что я имею до сих пор, и у меня возникают проблемы с загрузкой 1-100 комиксов, начиная с https://xkcd.com/1/, и я знаю, что должен перейти к исходному коду для веб-сайта. Тем не менее, я не могу понять, как поместить все первые 100 комиксов в мой назначенный файл, в котором я его сохраняю. Например, я хочу https://xkcd.com/1/(view-source:https://xkcd.com/1/), https://xkcd.com/2/(view-source:https://xkcd.com/2/), и вплоть до комикса 100. Я знаю, что img src находится в строке 50, но, опять же, я не знаю, как к нему подойти.

 public static void main(String[] args) {
    URL imgURL = null;
    for (int web = 1; web <= 100; web++) {
    try {
        imgURL = new URL("https://imgs.xkcd.com/comics/barrel_cropped_(1).jpg");
        InputStream stream = imgURL.openStream();
        Files.copy(stream, Paths.get("file/WebComics" + web + ".png"));
        System.out.println("Done!");
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("Error!");
    }
    }
}

}

1 Ответ

0 голосов
/ 30 апреля 2018

Добавьте библиотеку jsoup jar в свой проект и попробуйте следующее:

static void do_page(int id) throws IOException {
    Document doc = Jsoup.connect("https://xkcd.com/" + id).get();
    Elements imgs = doc.select("#comic img");
    for (Element e: imgs) {
        System.out.println(e.attr("src"));
    }
}

Затем вызовите функцию do_page в цикле:

for (int i = 1; i <= 100; i++) {
    do_page(i);
}

Теперь, вместо того, чтобы распечатать его, вы можете снова использовать JSoup, чтобы, вероятно, загрузить изображения так, как считаете нужным.

...