Java打造简易股指跟踪系统

news/2024/7/21 6:28:36 标签: Java, 正则表达式, Excel, 理财, Apache

最近股市大牛,相信这里的不少朋友都在炒股,当然上班时间老是开着网页看股市或是盯着红红绿绿的专业股票软件是总是担心被周围同事看到的,但又不时的想着大盘是涨了还是跌了,自己的股票又是如何呢。

    于是用 Java 写了一套简单的股市信息跟踪的小程序,Console 的,用于抓取相应的股市信息并显示到 console 中,谁也不会想到这个东西会是用来看股市的吧。

    这套小小的程序用到了几个非常简单的技术,HttpClient 和 正则表达式。程序功能非常简单,找到含有股市数据的页面,使用 HttpClient 抓取下来,通过正则表达式匹配自己需要的内容,在 Console 上打印出来。

    准备花两篇文章简单的介绍这个小系统中的实现细节,当然这只是简单的介绍,其实我们再稍微用点其他的技术,可以做出更多更实用的小工具。比如我就写了个小爬虫,把某个基金网站上的基金净值数据爬来了,足足有10W条,供我做基金形势分析之用,拿到这些原始数据,再动用一下自己的头脑,再配合一些方便的工具,比如 Excel,我们便可以用实际数据去辅助投资理财

        首先我们来简单的介绍我们用到的第一个工具,HttpClient。

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
    以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。
实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
支持自动转向
支持 HTTPS 协议
支持代理服务器等

HttpClient 可以在http://jakarta.apache.org/commons/httpclient/downloads.html下载

HttpClient 基本功能的使用
GET 方法
使用 HttpClient 需要以下 6 个步骤:
1. 创建 HttpClient 的实例
2. 创建某种连接方法的实例,在这里是 GetMethod。在 GetMethod 的构造函数中传入待连接的地址
3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理

根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。

根据这样的过程,我们便可以写出一个简单的抓取页面的方法,该方法返回抓到的页面数据。传入的参数是页面的 URL。

protected String getURLResponse(String url) {
 try {
  HttpClient client = new HttpClient();
  GetMethod method = new GetMethod(url);
  int returnCode = client.executeMethod(method);
  String response = null;
  if (returnCode == 200) {
   response = EncodingUtil.getString(method.getResponseBody(), "gb2312");
  }
  method.releaseConnection();
  return decode(response);
 } catch (Exception e) {
  return null;
 }
}

HttpClient 是一个很实用的工具,用它,我们可以做很多和 Http 有关的事情。
大家可以参考: http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ 来初步了解 HttpClient 的功能。
或是去找找 Jakarta.Commons.Cookbook 或者 Jakarta.Commons.Online.Bookshelf,上面介绍了包括 HttpClient 在内的很多 Apache Jakarta Commons 项目,相信合理使用,会让你事半功倍的。

下一篇我们将介绍一下如何用正则表达式处理我们抓取到的数据。


http://www.niftyadmin.cn/n/674608.html

相关文章

C#3.0新特性小结(2)

c#3.0中除了自动属性外,还添加: 隐含类型局部变量(Local Variable Type Inference) 匿名类型(Anonymous Types) 对象与集合初始化器(Object and Collection Initializers) 代码演示实例: //测试数组publicstaticvoidTestArray() { //测试数组va…

VFP调用C#编写的DLL

废话少说 第一步 在vs中建立一个类库 比如class1.cs 第二步 编写自己的方法 比如很简单的 public string DoNothing() { return "donothing"; } 第三步 增加两个特定的方法 public void Initialize() { } public void Dispose(…

输入输出系统(四) - I/O接口

接口可以是硬件与硬件之间, 可以是软件与软件之间; 也可以是硬件与软件之间。 这篇文章主要讲主机与I/O设备的接口。 一、 为什么要用接口? 1, 前面已经说过计算机内部采用的是总线结构, 每个外部设备都有其自己的地…

HttpClient入门

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际工作经验给出了一些常见问题的…

定义数据库字符型字段时应注意

我们在在定义数据的时候,当定义的字段是字符型时,而这个字段要存储汉字时,要特别注意。此时字符的长度应该与数据库采用的编码结合起来。 比如:Oracle数据库采用utf-8编码,此时你定义一个字符型字段的长度是10&#xf…

Prism4.0CTP Prism应用程序架构

Prism允许你选择其中的任何部分进行使用。你可选取使用Model-View-ViewModel (MVVM) 模式、模块性(modularity)、 区域(regions)、命令(commands)、或者事件( events)等任意的组合。…

vs2017常用快捷键

VS2017常用快快捷键 目录(?)[]VS常用快捷键搜集窗口操作快捷键项目快捷键调试快捷键编辑快捷键代码快捷键单元测试项目相关的快捷键 Ctrl Shift B 生成项目 Ctrl Alt L 显示 Solution Explorer(解决方案资源管理器) S…

2分钟完美激活Windows7旗舰版

想当年激活Windows Vista时如火如荼的忙活,东挑西选从一大堆激活工具中好不容易才找到真正适合自己的。好了,现在Windows 7面临同样的问题,不过Lee早已为您选好了激活工具,亲测2分钟完美激活Windows7旗舰版,如果您整个…