zoukankan      html  css  js  c++  java
  • 慢牛系列一:如何抓取股票数据

    长假回来,大家应该很累吧?今天股市大涨,希望炒股的同学十月里能挖掘到好机会!

    上次在园子里发布《我的兼职创业历程》后,有同学问我怎么获取股票数据,我搜了下园子里的文章,写这么方面的挺多,比如下面两篇:

    实时股票数据接口

    程序员学炒股(1) 基础数据准备

    今天把数据抽取的代码整理了下,做了个控制台程序,这个程序主要抓取了新浪网的行业数据、股票信息,股价日、周、月线的数据,并把数据存储到数据库。文章末尾提供代码下载网址,代码可运行,设置好数据库连接字符串后,即可抽取数据了。

    数据抽取主要是找到合适的数据源,分析和提取数据。

    一、数据源

    免费的接口主要是各大门户网站和财经类网站,比如新浪网易的财经频道,或者东方财富和和讯网站等。

    专门做接口的数据聚合网站 API.CN,付费的有聚合数据股票接口等。

    另外如果想了解各种指数的成分股,比如上证50,深户300等指数的成分股,可以参考 上海证券交易所 深圳证券交易所,这两个网站提供两市的所有股票数据,提供了Excel下载,下载以后导入到数据即可。

    二、分析和提取数据

    通过浏览器的F12或者Fiddler查看网络请求数据,数据最好返回的是json格式,json格式的数据非常容易提取,利用Newtonsoft.Json把json对象转换成dynamic对象,访问json数据真是方便极了,没有用dynamic对象之前,一直是建立和json对象一致的类,然后在反序列化,现在不需要了,代码示例如下:

     public IList<DataAccess.Stock> GetStocks(DataAccess.StockCategory category)
            {
                var url = "http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1&num=900&sort=symbol&asc=1&node={0}&symbol=&_s_r_a=init";
                url = string.Format(url, category.code.Trim('"'));
                string content = getRequestContent(url);
                dynamic stocks = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
    
                IList<DataAccess.Stock> list = new List<DataAccess.Stock>();
                foreach (var stock in stocks)
                {
                    list.Add(new DataAccess.Stock
                    {
                        code = stock.code,
                        symbol = stock.symbol,
                        name = stock.name
                    });
                }
                return list;
            }
    数据提取

    如果返回数据不是json格式,那就需要用正则表示来提取了,这方面就要看情况了,我的代码里部分用到了正则表达式。

    另外,为了防止网站接口变化,你需要建立一个接口类,为应用多做几个接口的实现,应对后续网站接口的变化。

    好了,更详细的可以看我的源码,如果有其他问题可以在微信公众号里留言,我会尽快回复^_^

    欢迎关注我的个人创业项目:

    慢牛股票APP(安卓版),专注股票技术分析产品和服务。

    慢牛股票

    慢牛股票微信公众号:

    慢牛股票微信公众号

    PS:关注上面的微信公众号,发送“我要源码”即可获得本示例所有源码。

    每天收盘执行控制台程序,两市大概3000左右只个股,抽取数据完成后,您就可以用SQL各种查询股票数据了。

    如果数据有缺失的,您还是要去分析目标网站,自己再实现抽取,有什么问题可以在公众号里发我。

    最后,祝大家投资顺利!文章写得一般,大家见谅!欢迎点赞!

  • 相关阅读:
    万能分页方法!机会难得,在此送给大家
    Java长存!12个Java长久占居主要地位的原因
    angularjs1.x radio组checkbox组
    js动态显示vlc视频直播
    Lodop 分页详解,可详细了呢
    lodop 实现分页打印账单 最后一页右下角加入确认签字
    lodop分页,页眉页脚,foreach分页代码
    ajax最简单验证
    Httpcilent获取带验证码的网站内容
    设计模式(转载)
  • 原文地址:https://www.cnblogs.com/hongyin163/p/stockdata.html
Copyright © 2011-2022 走看看