php 怎么抓取行情数据,使用C++程序获取新浪行情数据的方法

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

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

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

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

#include "stdafx.h"

#include

#include

#include

#include

#include

#include

#define MAXSIZE 1024

#pragma comment(lib, "Wininet.lib")

void urlopen(_TCHAR*);

std::string GetSubBtFind(char* lpsz);

int Token(const char* pSep, char* pStr, std::vector& refvec);

int _tmain(int argc, _TCHAR* argv[])

{

urlopen(_T("http://hq.sinajs.cn/list=AG1309"));

system("pause");

return 0;

}

void urlopen(_TCHAR* url)

{

HINTERNET hSession = InternetOpen(_T("UrlTest"), INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

if(hSession != NULL)

{

HINTERNET hHttp = InternetOpenUrl(hSession, url, NULL, 0, INTERNET_FLAG_DONT_CACHE, 0);

if (hHttp != NULL)

{

wprintf_s(_T("%s\n"), url);

char Temp[MAXSIZE];

ULONG Number = 1;

while (Number > 0)

{

InternetReadFile(hHttp, Temp, MAXSIZE - 1, &Number);

Temp[Number] = '\0';

std::string str= GetSubBtFind(Temp);

;

char szpstr[1024];

strcpy(szpstr, str.c_str());

std::vector vec;

Token(",", szpstr, vec);

printf("%s\n", Temp);

for(int i=0; i

{

printf("%s\n", vec[i]);

}

}

InternetCloseHandle(hHttp);

hHttp = NULL;

}

InternetCloseHandle(hSession);

hSession = NULL;

}

}

std::string GetSubBtFind(char* lpsz)

{

std::string scrStr=lpsz;

std::string str_temp="";

int len=strlen(lpsz);

int beginPos=scrStr.find("\"");

scrStr=scrStr.substr(beginPos+1,len);

int endPos=scrStr.find("\"");

str_temp=scrStr.substr(0,endPos);

return str_temp;

}

int Token(const char* pSep, char* pStr, std::vector& refvec)

{

for(char* outer = strtok(pStr, pSep) ; NULL != outer; outer = strtok(NULL, pSep))

{

refvec.push_back(outer);

}

return 0;

}

上述代码在vs2008下运行结果如下:

dd2f48c44783b9df7cdb42b4e5279adb.png

以上就是本文的全部内容,希望对大家熟练应用C++程序抓取数据有所帮助

时间: 2015-07-21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值