JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API

简介: JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API

基本原理:

JDK6u10版本以上提供了DeskTop的API接口支持,可以根据URI参数自动打开

操作系统默认的浏览器来加载对应的网页,同时借助JDK的Robot类实现自动截屏

这样就完成了对任意一个URL对应网页保存为图片。程序如下:

package com.gloomyfish.image.util;
 
import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URI;
 
import javax.imageio.ImageIO;
 
public class DeskTopTest {
  public static void main(String[] args) {
    if (!java.awt.Desktop.isDesktopSupported()) {
      System.err.println("Desktop is not supported (fatal)");
      System.exit(1);
    }
 
    java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
    if (!desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
      System.err.println("Desktop doesn't support the browse action (fatal)");
      System.exit(1);
    }
    
    try {
      URI uri = URI.create("http://www.csdn.net");
      desktop.browse(uri);
      Thread.sleep(8000); // 8 seconds is enough to load the any page.
      Robot robot = new Robot();
      // Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize() );
      Rectangle rectangle = new Rectangle(300, 90, 1000, 720);
      BufferedImage image = robot.createScreenCapture(rectangle);
      File outputfile = new File("D:\\agriculture\\test.jpg");
      ImageIO.write(image, "jpg", outputfile);
    } catch (IOException e) {
      e.printStackTrace();
    } catch (AWTException e) {
      e.printStackTrace();
    } catch (InterruptedException e) {
      e.printStackTrace();
    } 
  }
}

缺点:

程序运行时用户不能有其它操作,否则可能保存错误截屏。 这里

假设加载一个网页时间最长为8秒.

转载请注明出自gloomyfish


相关文章
|
8天前
|
SQL Java API
使用Java Stream API简化集合操作
使用Java Stream API简化集合操作
|
7天前
|
负载均衡 安全 Java
Java中的服务治理与API网关实现
Java中的服务治理与API网关实现
|
7天前
|
监控 安全 Java
在Java中集成第三方API调用的最佳实践
在Java中集成第三方API调用的最佳实践
|
8天前
|
Java API
如何利用Java Stream API简化集合操作?
如何利用Java Stream API简化集合操作?
|
1天前
|
JSON 人工智能 API
App Inventor 2 人脸识别App开发 - 第三方API接入的通用方法
**App 效果图**:展示人脸识别功能,可识别性别和年龄。 **工作原理**:调用第三方人脸识别API,上传图片并接收返回的JSON数据,AppInventor2解析结果显示。
13 0
|
6天前
|
并行计算 Java 数据挖掘
Java面试题:解释Java中的Stream API及其操作
Java面试题:解释Java中的Stream API及其操作
13 0
|
8天前
|
算法
「AIGC」readLink实现url识别pdf、网页标题和内容
AIGC算法实现服务,通过Express接收URL,识别内容类型:HTML使用Cheerio解析,PDF用`pdf-parse`。自定义函数提取标题和内容。示例代码展示了如何处理HTTP响应,提取HTML的`<title>`及PDF文本,并提供错误处理。服务器运行在端口3000。
11 0
|
8天前
|
Java API
如何利用Java Stream API简化集合操作?
如何利用Java Stream API简化集合操作?
|
运维 监控 Java
Java版阿里云通信短信发送API接口实例(1)
Java版阿里云通信短信发送API接口实例(新)
1050 0
Java版阿里云通信短信发送API接口实例(1)
|
JSON Java API
Java版阿里云通信短信发送API接口实例(2)
Java版阿里云通信短信发送API接口实例(新)
1006 0

相关实验场景

更多