如何抓取股票数据

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

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

1、数据源

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

专门作接口的聚合数据股票接口等。正则表达式

另外若是想了解各类指数的成分股,好比上证50,深户300等指数的成分股,能够参考 上海证券交易所 深圳证券交易所,这两个网站提供两市的全部股票数据,提供了Excel下载,下载之后导入到数据便可。数据库

2、分析和提取数据

经过浏览器的F12或者Fiddler查看网络请求数据,数据最好返回的是json格式,json格式的数据很是容易提取,利用Newtonsoft.Json把json对象转换成dynamic对象,访问json数据真是方便极了,没有用dynamic对象以前,一直是创建和json对象一致的类,而后在反序列化,如今不须要了,代码示例如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格式,那就须要用正则表示来提取了,这方面就要看状况了,个人代码里部分用到了正则表达式。api

另外,为了防止网站接口变化,你须要创建一个接口类,为应用多作几个接口的实现,应对后续网站接口的变化。浏览器

转载:http://www.cnblogs.com/hongyi...网络

相关文章
相关标签/搜索