隨筆 - 170  文章 - 536  trackbacks - 0
          <2007年6月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          常用鏈接

          我參與的團(tuán)隊(duì)

          隨筆分類(103)

          搜索

          •  

          積分與排名

          • 積分 - 414827
          • 排名 - 135

          最新評(píng)論

          閱讀排行榜

              最近股市大牛,相信這里的不少朋友都在炒股,當(dāng)然上班時(shí)間老是開著網(wǎng)頁(yè)看股市或是盯著紅紅綠綠的專業(yè)股票軟件是總是擔(dān)心被周圍同事看到的,但又不時(shí)的想著大盤是漲了還是跌了,自己的股票又是如何呢。

              于是用 Java 寫了一套簡(jiǎn)單的股市信息跟蹤的小程序,Console 的,用于抓取相應(yīng)的股市信息并顯示到 console 中,誰(shuí)也不會(huì)想到這個(gè)東西會(huì)是用來(lái)看股市的吧。

              這套小小的程序用到了幾個(gè)非常簡(jiǎn)單的技術(shù),HttpClient 和 正則表達(dá)式。程序功能非常簡(jiǎn)單,找到含有股市數(shù)據(jù)的頁(yè)面,使用 HttpClient 抓取下來(lái),通過(guò)正則表達(dá)式匹配自己需要的內(nèi)容,在 Console 上打印出來(lái)。

              準(zhǔn)備花兩篇文章簡(jiǎn)單的介紹這個(gè)小系統(tǒng)中的實(shí)現(xiàn)細(xì)節(jié),當(dāng)然這只是簡(jiǎn)單的介紹,其實(shí)我們?cè)偕晕⒂命c(diǎn)其他的技術(shù),可以做出更多更實(shí)用的小工具。比如我就寫了個(gè)小爬蟲,把某個(gè)基金網(wǎng)站上的基金凈值數(shù)據(jù)爬來(lái)了,足足有10W條,供我做基金形勢(shì)分析之用,拿到這些原始數(shù)據(jù),再動(dòng)用一下自己的頭腦,再配合一些方便的工具,比如 Excel,我們便可以用實(shí)際數(shù)據(jù)去輔助投資理財(cái)。

                  首先我們來(lái)簡(jiǎn)單的介紹我們用到的第一個(gè)工具,HttpClient。

              HttpClient 是 Apache Jakarta Common 下的子項(xiàng)目,可以用來(lái)提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本和建議。
              以下列出的是 HttpClient 提供的主要的功能,要知道更多詳細(xì)的功能可以參見 HttpClient 的主頁(yè)。
          實(shí)現(xiàn)了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
          支持自動(dòng)轉(zhuǎn)向
          支持 HTTPS 協(xié)議
          支持代理服務(wù)器等

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

          HttpClient 基本功能的使用
          GET 方法
          使用 HttpClient 需要以下 6 個(gè)步驟:
          1. 創(chuàng)建 HttpClient 的實(shí)例
          2. 創(chuàng)建某種連接方法的實(shí)例,在這里是 GetMethod。在 GetMethod 的構(gòu)造函數(shù)中傳入待連接的地址
          3. 調(diào)用第一步中創(chuàng)建好的實(shí)例的 execute 方法來(lái)執(zhí)行第二步中創(chuàng)建好的 method 實(shí)例
          4. 讀 response
          5. 釋放連接。無(wú)論執(zhí)行方法是否成功,都必須釋放連接
          6. 對(duì)得到后的內(nèi)容進(jìn)行處理

          根據(jù)以上步驟,我們來(lái)編寫用GET方法來(lái)取得某網(wǎng)頁(yè)內(nèi)容的代碼。

          根據(jù)這樣的過(guò)程,我們便可以寫出一個(gè)簡(jiǎn)單的抓取頁(yè)面的方法,該方法返回抓到的頁(yè)面數(shù)據(jù)。傳入的參數(shù)是頁(yè)面的 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 是一個(gè)很實(shí)用的工具,用它,我們可以做很多和 Http 有關(guān)的事情。
          大家可以參考: http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ 來(lái)初步了解 HttpClient 的功能。
          或是去找找 Jakarta.Commons.Cookbook 或者 Jakarta.Commons.Online.Bookshelf,上面介紹了包括 HttpClient 在內(nèi)的很多 Apache Jakarta Commons 項(xiàng)目,相信合理使用,會(huì)讓你事半功倍的。

          下一篇我們將介紹一下如何用正則表達(dá)式處理我們抓取到的數(shù)據(jù)。

          posted on 2007-06-21 22:11 steady 閱讀(1926) 評(píng)論(5)  編輯  收藏 所屬分類: 技術(shù)隨筆

          FeedBack:
          # re: Java打造簡(jiǎn)易股指跟蹤系統(tǒng)(1) 2007-06-21 22:38 itkui
          股民在努力,嘿嘿  回復(fù)  更多評(píng)論
            
          # re: Java打造簡(jiǎn)易股指跟蹤系統(tǒng)(1) 2007-06-22 10:47 garvin
          請(qǐng)問(wèn)你是通過(guò)什么地址抓取這些實(shí)時(shí)的股票數(shù)據(jù)呢?
          你提到的“基金網(wǎng)站上的基金凈值數(shù)據(jù)”又是什么地址呢?
          這些地址使開放的嗎?  回復(fù)  更多評(píng)論
            
          # re: Java打造簡(jiǎn)易股指跟蹤系統(tǒng)(1) 2007-06-22 10:58 steady
          @garvin
          滬深指數(shù):http://web6.jrj.com/homev1/StockIndex.htm
          基金數(shù)據(jù)來(lái)源于和訊基金: http://funds.money.hexun.com/  回復(fù)  更多評(píng)論
            
          # re: Java打造簡(jiǎn)易股指跟蹤系統(tǒng)(1) 2007-06-26 09:50 chl
          可以把源程序共享一下嘛?  回復(fù)  更多評(píng)論
            
          # re: Java打造簡(jiǎn)易股指跟蹤系統(tǒng)(1) 2007-11-15 00:12 nial
          期待中~ 呵呵  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 鹤山市| 富平县| 曲阳县| 樟树市| 漳州市| 青海省| 通州区| 杨浦区| 安阳县| 库伦旗| 全椒县| 辰溪县| 天等县| 九寨沟县| 宾川县| 南雄市| 黄梅县| 庆云县| 武宣县| 连江县| 宁南县| 比如县| 冕宁县| 友谊县| 景谷| 宜宾县| 嵊泗县| 万全县| 三穗县| 松原市| 桐梓县| 大连市| 中阳县| 康乐县| 晋江市| 紫金县| 灵山县| 贡嘎县| 泽库县| 定西市| 印江|