`

获取网站的实时股票数据

阅读更多
以下代码可以解析WAP的PHP网页以及JSP网页;如果是要解析JSP网页,代码可以更加简略。
/**

 *本文来自http://blog.csdn.net/hellogv/

 * 这个单元负责全局函数

 */

import java.io.*;

import java.util.*;

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

import javax.microedition.io.*;

import javax.microedition.rms.*;

import java.lang.String;





public class cls_Stock {

    RecordStore rs=null;

    public cls_Stock() {

    }

    //-----------------------------------以下核心代码--------------------------------------------------------

    //从【股票信息】中返回指定的字符,从str_content中,提取开头为separator,结尾为str_end的之间的字符串

    public String GetSubStr(String str_content,String separator,String str_end)

    {

        int pos1=str_content.indexOf(separator)+separator.length();

        int pos2=0;

        if(str_end==null)

           pos2=str_content.length();     

        if(str_end!=null)

           pos2=str_content.indexOf(str_end, pos1);

        return str_content.substring(pos1, pos2);

    }

    //连接指定URL,取得股票信息,ConnectNet()控制ReturnStock()

    public String ConnectNet(String url,String separator,String end,String[] strs_filter)

    {    

        try{

            HttpConnection hc = (HttpConnection)Connector.open(url, Connector.READ_WRITE);

            hc.setRequestMethod(HttpConnection.POST);

            DataOutputStream dos = hc.openDataOutputStream();   

            DataInputStream dis = new DataInputStream(hc.openInputStream());

        //-------------------------关键代码:第一步获取整个网页的数据下载回来--------------------------------

            byte []str=new byte[2000];//从内存申请空间

            dis.read(str);//把读取返回的信息保存在str中  

            String content= XMLToString(str,strs_filter);//把str转换为字符串

        //-------------------------关键代码:第二步提取关键的数据--------------------------------  

            content=ReturnStock(content,separator,end,strs_filter);

           

            return content; 

        }catch(Exception e){return "出现错误!\n也许是网络连接错误、股票根本不存在或者现在股票休市!";}//出错则返回空字符

    }

   

      

    public String XMLToString(byte[] rec,String[] strs_filter) { //从字节读取内容        

           ByteArrayInputStream bais = new ByteArrayInputStream(rec);

           DataInputStream dis = new DataInputStream(bais);

           String BTS=null;

           try {

               BTS=new String(rec,"UTF-8");

               bais.close();

               dis.close();

           } catch (Exception e) {

               e.printStackTrace();

           }

           if (BTS.indexOf("")>0)//表示不能转换为汉字,则要过滤转换(提高效率)

           {

               for(int i=0;i<strs_filter.length;i++)//根据字段,循环把汉字替换为UTF码       

               {

                  BTS=replaceStr(BTS,GBtoUTF(strs_filter[i]),strs_filter[i]);

               }

           }

           return BTS;     

       }



    //从一堆XML代码中搜索有用的股票信息

    //根据strs_filter的元素作为查找字符串的开头

    //end作为结尾

    //separator作为分隔头和尾的标志

    public String ReturnStock(String content,String separator,String end,String[] strs_filter)

    {

        String str="",str_fieldname="";

        for(int i=0;i<strs_filter.length;i++)

        {

            int pos1=content.indexOf(strs_filter[i]);

            int pos2=content.indexOf(separator, pos1+1);

            int pos3=content.indexOf(end, pos2+1);

            str_fieldname=content.substring(pos1, pos1+strs_filter[i].length());

            str=str+"\n"+str_fieldname+content.substring(pos2, pos3);

        }    

        return str;

    }

//----------------------一下两个函数GBtoUTF,replaceStr配合一起使用---------------------------------

   //把汉字转化为UTF代码

    public static String GBtoUTF(String gb2312String) {

        if (gb2312String == null) {

            return null;

        }

        StringBuffer sb = new StringBuffer(gb2312String.length() * 8);



       int j = 0;

        for (int i = 0; i < gb2312String.length(); i++) {

            j = gb2312String.charAt(i);

            sb.append("");

            sb.append(Integer.toHexString(j).toLowerCase());

            sb.append(";");

        }

        return sb.toString();

    }



 //替换字符串函数

    public static String replaceStr(String str, String OldStr, String replace){

        for(int i=str.indexOf(OldStr); i>=0; i=str.indexOf(OldStr, i-1))

        {     

            if(i==0){                

                str = replace+str.substring(i+1, str.length());    

            }    

            else{        

                str = str.substring(0, i)+replace+str.substring(i+1, str.length());     

            }

        }

        return str;

    }

//----------------------以上两个函数GBtoUTF,replaceStr配合一起使用---------------------------------

   

     //-----------------------------------以上核心代码--------------------------------------------------------

 
分享到:
评论

相关推荐

    获取股票实时数据

    使用python 调用开元库baostock 获取实时股票的数据 并且转化成json格式发送给第三方程序

    获取股票实时数据的接口Gdat

    这款强大的工具以其高效、准确和全面的数据获取能力,为用户提供了实时的股票市场信息,使得投资者能够在瞬息万变的股市中做出快速而明智的决策。GDAT 的核心功能在于其数据引擎,它能够快速地处理和分析大量股票...

    股票数据实时获取

    首先,让我们了解“股票数据实时获取”的基本概念。实时股票数据是指股票市场中最新的交易信息,如当前价、最高价、最低价、成交量等。这些数据不断更新,帮助投资者快速做出决策。为了获取这些数据,我们通常需要与...

    VC++获取网上股市数据并实时图表显示的源代码

    该源代码项目是一个基于VC++的股票数据获取与实时图表显示的应用程序,使用了Visual Studio 2010进行开发。这个程序的核心功能是通过新浪网提供的股市接口,获取最新的股票市场数据,包括6个主要的大盘指数和50个...

    腾讯股票接口----获取股票实时行情数据-----vc6.0源代码

    腾讯作为中国最大的互联网公司之一,提供了丰富的API服务,其中包括财经数据接口,允许开发者获取股票市场数据,如实时报价、历史交易数据等。这些接口通常通过HTTP请求发送到腾讯服务器,并返回JSON或XML格式的数据...

    腾讯股票实时数据接口---五档行情---VC++ 6.0获取并显示沪深股市实时行情数据---.rar

    这种接口通常以API的形式存在,允许开发者通过发送特定的请求来获取股票市场的实时信息。在VC++ 6.0中,我们可以使用HTTP或HTTPS请求库(如WinInet或WinHttp)来实现对接口的调用。调用接口时,我们需要遵循腾讯设定...

    Vb股票实时交易数据采集源码

    【VB股票实时交易数据采集源码】是一个使用Visual Basic(VB)编程语言编写的程序,其主要功能是针对中国A股市场,包括沪深两市共3396只股票的实时交易数据进行批量采集。该程序具备灵活性,允许用户根据特定的交易...

    实时获取股票行情数据

    在IT行业中,实时获取股票行情数据是一项至关重要的任务,尤其对于投资者、交易员以及金融分析人员来说。Delphi是一款强大的面向对象的编程环境,它基于Pascal语言,以其高效的性能和丰富的组件库闻名,常被用于开发...

    股票行情实时数据接口-A股,完全免费的沪深证券股票数据-中国股市,python最简封装的API接口,包含日线,历史K线,分时线,分钟线,全部实时采集,系统包括新

    股票行情实时数据接口-A股,完全免费的沪深证券股票数据-中国股市,python最简封装的API接口,包含日线,历史K线,分时线,分钟线,全部实时采集,系统包括新浪腾讯双数据核心采集获取,自动故障切换,STOCK数据格式成...

    五档行情---VC++ 6.0获取并显示沪深股市实时行情数据.rar

    在本文中,我们将深入探讨如何使用VC++ 6.0编程环境来开发一款能够获取并显示沪深股市实时行情数据的应用程序。"五档行情"通常指的是股票市场中的买一、买二、买三、卖一、卖二、卖三六个价位,这六档价格反映了市场...

    5行代码实现1秒以内获取一次所有股票的实时分笔数据

    5. 批量获取股票代码:为了一次性获取大量股票的实时数据,首先需要准备一个包含股票代码的列表。本文示例中通过读取本地文件的方式获取了所有股票代码。 6. 时间戳使用:在数据获取前后,使用datetime模块来记录...

    运用tushare爬取五档盘口实时数据

    在金融领域,实时数据是至关重要的,特别是在股票市场中,投资者需要及时获取五档盘口信息来做出决策。本文将详细介绍如何使用Python编程语言和tushare库来爬取五档盘口的实时数据。 首先,tushare是一个专业的...

    获取实时股票数据与股票数据接口API

    获取实时股票数据与股票数据接口API,如果你要同时查询多个股票,那么在URL最后加上一个逗号,再加上股票代码就可以了;比如你要一次查询大秦铁路(601006)和大同煤业(601001)的行情,就这样使用URL: ...

    python实现股票行情数据获取

    例如,使用Alpha Vantage API获取股票实时数据,需要设置API密钥,并构造合适的URL进行GET请求。 3. **处理JSON数据**:返回的数据通常为JSON格式,可以使用`json`库解析。例如,解析JSON并提取所需字段,如收盘价...

    Pytdx接口方式获取实时行情数据

    免费开源Pytdx接口方式获取实时行情数据。 Pytdx 是一款纯Python语言开发的类似TradeX的行情数据接口的实现。它提供各种股票/期货/期权等等实时行情数据。 提供数据种类包括: market category name short_name0 ...

    googlefinance, python 模块从Google获取实时股票数据.zip

    googlefinance, python 模块从Google获取实时股票数据 googlefinancepython 模块从 Google Finance API获取股票数据这里模块提供无延迟,NYSE & NASDAQ实时库存数据。另一个了不起的模块,雅虎雅虎财务数据延迟了1 ...

    网站实时股票数据接口

    这类接口通常由大型网站或金融信息服务平台提供,目的是为了能够让个人或企业用户在自己的应用程序中接入并实时获取股票市场的数据信息。 ### 描述解析 #### 提供几个大型网站股票实时行情的数据接口,说明如何在...

    VC++ 获取网络接口股票日线数据

    在我们的场景中,我们需要向股票数据提供者发送一个包含股票代码的请求,以获取该股票的历史日线数据。这通常涉及构建一个URL,其中包含股票代码和可能的其他参数,然后将该URL作为GET请求的目标。 VC++提供了多种...

    java获取新浪股票信息

    新浪财经提供了免费的股票数据接口,可以用来获取股票的实时行情。通过访问特定的URL,如`http://hq.sinajs.cn/list=sz000723`,我们可以得到股票的详细信息。这些信息以字符串形式返回,包含了股票的多个属性,例如...

Global site tag (gtag.js) - Google Analytics