Сохранить изображение с URL-адреса с помощью HTMLUnit Можно ли сохранить изображение на жесткий диск с помощью HTMLUnit, указав ему URL-адрес изображения? Если да, то как? Привет! Ответ 1 Если вы используете HtmlUnit, тогда у вас должен быть HtmlPage. Там вы можете получить HtmlImage и сохранить файл таким образом: HtmlImage image = page.<HtmlImage>getFirstByXPath("//img[@src='blah']"); File imageFile = new File("/path/to/file.jpg"); image.saveAs(imageFile); Если у вас есть URL... тогда я не думаю, что вам нужно HtmlUnit для загрузки изображения. Ответ 2 Вот как я написал код следующим образом: NodeList nlx = downloadPage.getElementsByTagName("a"); for (int y = 0; y<nlx.getLength(); y++) { String ss = nlx.item(y).toString(); if(ss.contains("download/?fileformat=kml")) { System.out.println(ss); HtmlElement anchorAttachment = (HtmlElement)nlx.item(y); InputStream is =anchorAttachment.click().getWebResponse().getContentAsStream(); try { //System.out.println(is); OutputStream out = new FileOutputStream(new File(fileName+".KML")); int read=0; byte[] bytes = new byte[1024]; while((read = is.read(bytes))!= -1) { out.write(bytes, 0, read); } is.close(); out.flush(); out.close(); System.out.println("New file created!"); } catch (IOException e) { System.out.println(e.getMessage()); } } }
Ответ 1 Если вы используете HtmlUnit, тогда у вас должен быть HtmlPage. Там вы можете получить HtmlImage и сохранить файл таким образом: HtmlImage image = page.<HtmlImage>getFirstByXPath("//img[@src='blah']"); File imageFile = new File("/path/to/file.jpg"); image.saveAs(imageFile); Если у вас есть URL... тогда я не думаю, что вам нужно HtmlUnit для загрузки изображения.
Ответ 2 Вот как я написал код следующим образом: NodeList nlx = downloadPage.getElementsByTagName("a"); for (int y = 0; y<nlx.getLength(); y++) { String ss = nlx.item(y).toString(); if(ss.contains("download/?fileformat=kml")) { System.out.println(ss); HtmlElement anchorAttachment = (HtmlElement)nlx.item(y); InputStream is =anchorAttachment.click().getWebResponse().getContentAsStream(); try { //System.out.println(is); OutputStream out = new FileOutputStream(new File(fileName+".KML")); int read=0; byte[] bytes = new byte[1024]; while((read = is.read(bytes))!= -1) { out.write(bytes, 0, read); } is.close(); out.flush(); out.close(); System.out.println("New file created!"); } catch (IOException e) { System.out.println(e.getMessage()); } } }