Моя цель - написать приложение Java, которое проверяет следующий URL-адрес: https://familysearch.org/pal:/MM9.3.1/TH-1971-28699-12927-58 можно сохранить изображение (копию страницы, принадлежащей старой книге), и перейти к следующей странице, повторив процесс , Можно вручную загрузить изображения, но я хочу автоматизировать эту задачу. Проблема в том, что я мало что знаю о сети, поэтому мне тяжело.Осмотрите URL-адрес и скачайте изображение
Я использовал веб-инспектора моего браузера, чтобы увидеть ресурсы в URL-адресе, и смог сделать вывод, что изображение можно найти здесь: https://familysearch.org/pal:/MM9.3.1/TH-1971-28699-12927-58.jpg.
Так что я попытался следующий фрагмент кода:
public static void saveImage(String imageUrl, String destinationFile) throws IOException {
URL url = new URL(imageUrl);
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(destinationFile);
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
public static void main(String args[]) throws Exception {
String imageUrl = "https://familysearch.org/pal:/MM9.3.1/TH-1971-28699-12927-58.jpg";
String destinationFile = "./image.jpg";
saveImage(imageUrl, destinationFile);
}
Что же на самом деле не работает. Я получил следующий вывод:
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 500 for URL: https://familysearch.org/pal:/MM9.3.1/TH-1971-28699-12927-58.jpg
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1626)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at java.net.URL.openStream(URL.java:1037)
at mainpackage.Main.saveImage(Main.java:25)
at mainpackage.Main.main(Main.java:44)
Так у меня есть две проблемы: первая из которых, как действовать, чтобы загрузить изображение, а второй, как найти URL для следующего изображения, как URL-адреса дону Кажется, что он соответствует шаблону (например, счету).
похоже, что сервер блокирует горячую ссылку. что означает, что они не хотят делать это, если это так. – Steve
Но как мой браузер может получить доступ к изображению? Я могу сделать это, щелкнуть правой кнопкой мыши и «сохранить как». – Thiago
ну idk..не уверен, как это работает, только слышал об этом. Но 500-код означает внутреннюю ошибку сервера, и это не должно происходить при загрузке изображений, которая является прямым доступом. – Steve