结合BeautyEye开源UI框架实现的较美观的Java桌面程序,主要功能就是图灵机器人和一个2345网站万年历的抓取。。。。 2017/12/5: 刚刚把程序里面的事件处理用Lambda表达式替换了,现在再看之前的程序,真的感觉不怎么好,虽然程序还算简洁,结构自己也很清楚。但是在学完框架之后再看感觉很乱,可能这也是自己的一点成长吧。不过讲真,Lambda表达式真的给力,用最少的代码实现一样的功能,或许这是很多程序员的追求了吧!继续加油 !!!
httpClient+jsoup 简单介绍 :HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。(来自360百科,维基百科没这个名词?尴尬).jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。(来自360百科)
(更多请参考博客:http://blog.csdn.net/wangpeng047/article/details/19624529/或者官网httpClient:http://hc.apache.org/httpcomponents-client-5.0.x/index.html) 使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。
- 创建HttpClient对象。
- 创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;如果需要发送POST请求,创建HttpPost对象。
- 如果需要发送请求参数,可调用HttpGet、HttpPost共同的setParams(HetpParams params)方法来添加请求参数;对于HttpPost对象而言,也可调用setEntity(HttpEntity entity)方法来设置请求参数。
- 调用HttpClient对象的execute(HttpUriRequest request)发送请求,该方法返回一个HttpResponse。
- 调用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可获取服务器的响应头;调用HttpResponse的getEntity()方法可获取HttpEntity对象,该对象包装了服务器的响应内容。程序可通过该对象获取服务器的响应内容。
- 释放连接。无论执行方法是否成功,都必须释放连接
请参考: jsoup开发指南,jsoup中文使用手册,jsoup中文文档 : http://www.open-open.com/jsoup/ Jsoup解析Html教程 | xdemo.org http://www.xdemo.org/jsoup-html-parse/ Jsoup解析HTML实例及文档方法详解_java_脚本之家 http://www.jb51.net/article/43485.htm
图形界面我用JAVA SWING中的JDialog做的,本来是准备用android studio 做一个界面类似微信的聊天机器人的,因为之前嫌弃AS太占内存加上不想搞安卓了就卸载了,所以后面有时间再做,原理很简单,可以很方便移植到其他项目。 robot.java(机器人功能类)中有一段这样的代码.下面的API是我自己申请的,可以去图灵官网上申请创建一个属于自己的机器人。下面有申请方法。
// 接入机器人,输入问题
String APIKEY = "401415ff3f1245e1a487a82974bb7307";
String INFO = URLEncoder.encode(quesiton, "utf-8");// 这里可以输入问题
String getURL = "http://www.tuling123.com/openapi/api?key=" + APIKEY + "&info=" + INFO;
URL getUrl = new URL(getURL);
HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
connection.connect();
先进入图灵官网,注册账号 创建属于自己的个性机器人后得到属于自己的API 这个API不仅可以用在这里,想网页中微信公众号等平台中都适用。
这个功能没啥说的,我的代码里一共有三个类。都做了详细的说明。你只需要提前知道身份证的数字代表的有特殊含义就行了。