cómo descargar la imagen desde cualquier página web en java

hola, estoy tratando de descargar la imagen de la página web. Estoy intentando descargar la imagen de la página de inicio de ‘http://www.yahoo.com’. Por favor dígame cómo pasar ‘http://www.yahoo.com’ como entrada. Y al abrir esta página web, cómo recuperar imágenes de esta página. Por favor, dame código de Java para recuperar la imagen de la página web.

(throws IOException) Image image = null; try { URL url = new URL("http://www.yahoo.com/image_to_read.jpg"); image = ImageIO.read(url); } catch (IOException e) { }https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

Vea el paquete javax.imageiohttps://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ para más información. Eso es usando la imagen AWT. De lo contrario, podrías hacer:

  URL url = new URL("http://www.yahoo.com/image_to_read.jpg"); InputStream in = new BufferedInputStream(url.openStream()); ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int n = 0; while (-1!=(n=in.read(buf))) { out.write(buf, 0, n); } out.close(); in.close(); byte[] response = out.toByteArray();https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

Y es posible que desee guardar la imagen, así que haga lo siguiente:

 FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg"); fos.write(response); fos.close();https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

Si quiere guardar la imagen y conoce su URL, puede hacerlo:

 try(InputStream in = new URL("http://example.com/image.jpg").openStream()){ Files.copy(in, Paths.get("C:/File/To/Save/To/image.jpg")); }https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

También necesitará manejar la IOExceptionhttps://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ que se puede lanzar.

Esto funciona para mí:

 URL url = new URL("http://upload.wikimedia.org/wikipedia/commons/9/9c/Image-Porkeri_001.jpg"); InputStream in = new BufferedInputStream(url.openStream()); OutputStream out = new BufferedOutputStream(new FileOutputStream("Image-Porkeri_001.jpg")); for ( int i; (i = in.read()) != -1; ) { out.write(i); } in.close(); out.close();https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

Está buscando un rastreador web. Puede usar JSoup para hacer esto, aquí está el ejemplo básico

  // Do you want to download an image? // But are u denied access? // well here is the solution. public static void DownloadImage(String search, String path) { // This will get input data from the server InputStream inputStream = null; // This will read the data from the server; OutputStream outputStream = null; try { // This will open a socket from client to server URL url = new URL(search); // This user agent is for if the server wants real humans to visit String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"; // This socket type will allow to set user_agent URLConnection con = url.openConnection(); // Setting the user agent con.setRequestProperty("User-Agent", USER_AGENT); // Requesting input data from server inputStream = con.getInputStream(); // Open local file writer outputStream = new FileOutputStream(path); // Limiting byte written to file per loop byte[] buffer = new byte[2048]; // Increments file size int length; // Looping until server finishes while ((length = inputStream.read(buffer)) != -1) { // Writing data outputStream.write(buffer, 0, length); } } catch (Exception ex) { Logger.getLogger(WebCrawler.class.getName()).log(Level.SEVERE, null, ex); } // closing used resources // The computer will not be able to use the image // This is a must outputStream.close(); inputStream.close(); }https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

El siguiente código descarga una imagen de un enlace directo al disco en el directorio del proyecto. También tenga en cuenta que usa try-with-resourceshttps://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ .

 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.URL; import org.apache.commons.io.FilenameUtils; public class ImageDownloader { public static void main(String[] arguments) throws IOException { downloadImage("https://upload.wikimedia.org/wikipedia/commons/7/73/Lion_waiting_in_Namibia.jpg", new File("").getAbsolutePath()); } public static void downloadImage(String sourceUrl, String targetDirectory) throws MalformedURLException, IOException, FileNotFoundException { URL imageUrl = new URL(sourceUrl); try (InputStream imageReader = new BufferedInputStream( imageUrl.openStream()); OutputStream imageWriter = new BufferedOutputStream( new FileOutputStream(targetDirectory + File.separator + FilenameUtils.getName(sourceUrl)));) { int readByte; while ((readByte = imageReader.read()) != -1) { imageWriter.write(readByte); } } } }https://stackoverflow.com/questions/5882005/how-to-download-image-from-any-web-page-in-java/ 

Creo que él quería dar url del sitio como entrada, NO imagen url. Para las imágenes que tienen su url como src en el código html de sitios, creo que podría hacer prasing y buscar , y si es url y no ruta local, use los métodos en otras respuestas para guardarlo.