大数跨境
0
0

网络爬虫工具系列 —— 键盘鼠标自动化操作 Robot

网络爬虫工具系列 —— 键盘鼠标自动化操作 Robot 曼昂网络爬虫
2015-09-16
0
导读: robot(机器人)是自动执行工作的机器装置,在这里主要是能实现代替人工自动操作键盘和鼠标的

robot(机器人)是自动执行工作的机器装置,在这里主要是能实现代替人工自动操作键盘和鼠标的软件程序的方法。

对于网络数据的采集,对于量不大的情况,可能通过人工拷贝、粘贴的方式就是最好的采集方法。还有些,比如在屏幕上做互动的操作,由于重复性很高,纯粹的人工方式又比较无聊,而且比较慢,在这里就介绍一种通过程序替代人工重复性操作的实现方式——Java robot。

在JAVA中,从JDK1.3开始,它就提供了一个用来产生本机输入事件的机器人类 — java.awt.Robot.*。下面我来详细介绍Robot的功能及应用示例:


Robot主要的功能接口:

1. BufferedImage createScreenCapture(Rectangle screenRect)

说明:该方法提供类似于键盘上的PrintScreen键的功能,将指定矩形区域内的屏幕像素copy下来产生一个BufferedImage。

应用:我们可以将这个方法用在图形程序中,或是用它来实现远端屏幕传输,可做成远端电脑监控程序等.


2. void delay(int ms)

说明:用来将当前的程序(thread)休眠(sleep)若干毫秒(ms)。

应用:可用来控制程序的延时。这个一般是必须的,因为你在两次间隔操作中肯定有延时。


3. Color getPixelColor(int x, int y)

说明:取得给定屏幕坐标像素位置的颜色值。

应用:就是取颜色RGB值,就不多说了。


4. void keyPress(int keycode)

void keyRelease(int keycode)

说明:这两个方法的作用一看便知,用来产生指定键的按键按下与抬起动作,相当于Win32 API的keyb_event函数,即模拟键盘操作咯,具体keycode值就是KeyEvent.VK_C、KeyEvent.VK_D、KeyEvent.VK_CONTROL什么的,具体应用时直接看Eclipse提示就知道了。

应用:可用于程序的自动演示、测试等,非常有用。


5. void mouseMove(int x, int y)

说明:将鼠标光标移动到指定的屏幕坐标。

应用:可用于程序的自动演示、测试等,配合其他的方法使用,是不可缺少的。


6. void mousePress(int buttons)

 void mouseRelease(int buttons)

 void mouseWheel(int wheelAmt)

说明:上面的三种方法,产生指定鼠标按钮的按下,抬起,及滚轮动作,就是模拟鼠标操作。


上述功能接口中关于鼠标按键和键盘的键值都有相应的常量对应:

鼠标键对应的常量值如下:

InputEvent.BUTTON1_MASK —— 鼠标左键

InputEvent.BUTTON2_MASK —— 鼠标中键

InputEvent.BUTTON3_MASK —— 鼠标右键

键盘键对应的值可以具体查看:KeyEvent (java.awt.event.KeyEvent)


鼠标操作实例:

实现左键双击(100,200)点:

robot.mouseMove(100, 200);//移动鼠标到(100,200)点

robot.mousePress(InputEvent.BUTTON1_MASK);//按下左键

robot.mouseRelease(InputEvent.BUTTON1_MASK);//释放左键

robot.delay(10);//停顿100毫秒,即0.1秒

robot.mousePress(InputEvent.BUTTON1_MASK);//按下左键

robot.mouseRelease(InputEvent.BUTTON1_MASK);//释放左键


实现鼠标拖动

实现拖动,实际上就是在某一处按下鼠标左键,然后移动鼠标,再释放左键.实现将鼠标从(50,100)拖动到(100,200)的代码如下:

robot.mouseMove(50, 100);//移动鼠标到(50,100)点

robot.mousePress(InputEvent.BUTTON1_MASK);//按下左键

robot.delay(100);//停顿100ms

robot.mouseMove(100, 200);//移动鼠标到(100,200)点

robot.mouseRelease(InputEvent.BUTTON1_MASK);//释放左键


实现键盘操作也都类似,读者可以自行验证。

【声明】内容源于网络
0
0
曼昂网络爬虫
我们是程序员开发者联盟,利用业余时间提供网络爬虫软件定制、微站、H5、网站等各类软件开发服务,有意者请留言!
内容 96
粉丝 0
曼昂网络爬虫 我们是程序员开发者联盟,利用业余时间提供网络爬虫软件定制、微站、H5、网站等各类软件开发服务,有意者请留言!
总阅读103
粉丝0
内容96