嗨,我试图从网页下载图像.我想从'http://www.yahoo.com'主页下载图像.请告诉我如何通过'http://www.yahoo.com'作为输入.在打开此网页时,如何从此页面获取图像.请给我java代码从网页上获取图片.
(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) { }
有关javax.imageio
详细信息,请参阅包.这是使用AWT图像.否则你可以这样做:
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();
然后你可能想要保存图像,所以:
FileOutputStream fos = new FileOutputStream("C://borrowed_image.jpg"); fos.write(response); fos.close();
如果要保存图像并且知道其URL,则可以执行以下操作:
try(InputStream in = new URL("http://example.com/image.jpg").openStream()){ Files.copy(in, Paths.get("C:/File/To/Save/To/image.jpg")); }
您还需要处理IOException
可能抛出的s.
这对我有用:
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();
您正在寻找一个网络爬虫.您可以使用JSoup来执行此操作,这是基本示例
// 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(); }