使用C++程序获取新浪行情数据的方法

2020-01-06 13:27:12王振洲

这篇文章介绍了在一定的周期范围内去抓取新浪中行情数据,通过更新数据来缓解构造模拟数据与真实数据差异性,感兴趣的朋友可以了解一下

在日常开发中我们经常会使用到行情数据,很多的时候我们根据一个基准数据区构造行情,但是随着时间的推移然来构造的数据与真实行情数据之间的差距越来越大。

本问以AG1309为例子来说明,如何使用C++程序来获取新浪行情数据。(说明如果合约过期获取的数据将未空,此时请更换合约信息)。

好了,在这里就不再将废话,直接给出源码供大家学习!

// HttpDataTest.cpp : 定义控制台应用程序的入口点。

 

 
  1. #include "stdafx.h"  #include 
  2. #include  #include 
  3. #include  #include 
  4. #include   
  5. #define MAXSIZE 1024   
  6. #pragma comment(lib, "Wininet.lib")   
  7.   void urlopen(_TCHAR*); 
  8. std::string GetSubBtFind(char* lpsz);  int Token(const char* pSep, char* pStr, std::vector& refvec); 
  9.    
  10. int _tmain(int argc, _TCHAR* argv[])  { 
  11. urlopen(_T("http://www.easck.com/list=AG1309"));   
  12. system("pause");  return 0; 
  13. }   
  14.   void urlopen(_TCHAR* url) 
  15. {  HINTERNET hSession = InternetOpen(_T("UrlTest"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); 
  16. if(hSession != NULL)  { 
  17. HINTERNET hHttp = InternetOpenUrl(hSession, url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);  if (hHttp != NULL) 
  18. {  wprintf_s(_T("%sn"), url); 
  19. char Temp[MAXSIZE];  ULONG Number = 1; 
  20. while (Number > 0)  { 
  21. InternetReadFile(hHttp, Temp, MAXSIZE - 1, &Number);  Temp[Number] = ''; 
  22. std::string str= GetSubBtFind(Temp);  ; 
  23. char szpstr[1024];  strcpy(szpstr, str.c_str()); 
  24. std::vector vec;  Token(",", szpstr, vec);