如何抓取股票數據

今天把數據抽取的代碼整理了下,作了個控制檯程序,這個程序主要抓取了新浪網的行業數據、股票信息,股價日、周、月線的數據,並把數據存儲到數據庫。文章末尾提供代碼下載網址,代碼可運行,設置好數據庫鏈接字符串後,便可抽取數據了。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...網絡

相關文章
相關標籤/搜索