| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:抓不了資料的網站 :臺灣證券交易所 基本市況報導, 求!
只看楼主 加入收藏
circular
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-12-24
收藏
 问题点数:0 回复次数:0 
抓不了資料的網站 :臺灣證券交易所 基本市況報導, 求!
「臺灣證券交易所」網頁:http://newmis.
「台灣期貨交易所」網頁:
(http://info512.)

一樣是抓伺服器的即時資料,「台灣期貨交易所」就都ok,
(用IneternetExplorer直接巡覽及用excel的CreateObject("InternetExplorer.Application")
抓臺灣證券交易所也ok
用VC++抓臺灣證券交易所都沒辦法

對於「臺灣證券交易所」網頁,嘗試過
1.    使用CHtmlView
2.    使用ActiveX 的CExplorer1
3.    使用DotNet 的WebBrowser1_Navigated
4.    使用afxinet的GetHttpConnection
5.    使用MSXML的 IXMLHTTPRequest
都只取得文字(網頁框架),數字(DATA)都跑不出來

使用CHtmlView時,有出現四個”網頁指令碼發生錯誤”訊息
1.    http://newmis. ‘Highcharts’未經定義
2.    http:/newmis. 必須要有識別項,字串或數字
3.    http://newsmis. 屬性物件’loadPaeChangeFunction’的值為null 或未經定義,且不是Function
4.    http://newmis. 找不到成員。
記得半個月之前是出現二個錯誤,還抓得到DATA,之後就抓不到,試了很久,才發現多了二個錯誤了( sever 那邊改了程式碼?)

Afxinet的程式碼如下:
DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII   ;
DWORD dwHttpRequestFlags =  INTERNET_FLAG_DONT_CACHE ;
DWORD dwServiceType;
INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER;
CString strServerName,strObject,strURL="http://newmis.
BOOL bResult =  AfxParseURL(strURL, dwServiceType, strServerName, strObject, nPort);
DisplayHttpPage(strServerName,strObject);

void CmeInetenetSessionDoc::DisplayHttpPage(LPCTSTR  pszServerName, LPCTSTR pszFileName)
{

    CInternetSession session(_T("My Session"));
    CHttpConnection* pServer = NULL;
    CHttpFile* pFile = NULL;
    try
    {
        CString strServerName;
        INTERNET_PORT nPort = 80;
        DWORD dwRet = 0;
        CString szHeader1= "Accept:text/html\r\n"
            "Accept-Language: zh_tw\r\n"
            "Accept-Charset:big-5\r\n"
            //"Host: newmis.\r\n"
            "Content-Type: application/x-www-form-urlencoded\r\n"
            "User-Agent: Mozilla/5.0 (Windows NT 6.1;Win64; Trident/7.0; rv:11.0) like Gecko"
            "Connection: Keep-Alive\r\n"
            "Cache-Control: no-cache\r\n\r\n";

        pServer = session.GetHttpConnection(pszServerName, nPort);
        pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET, pszFileName);
        BOOL result = pFile->SendRequest(szHeader1);
        CString cs;

        pFile->QueryInfoStatusCode(dwRet);

        if (dwRet == HTTP_STATUS_OK)
        {
            CHAR szBuff[1024];
            CFile file;
            file.Open("z:\\test.html",CFile::modeCreate|CFile::modeWrite);
            while (pFile->Read(szBuff,1024) > 0)
            {
                file.Write(szBuff,sizeof szBuff);
                //AfxMessageBox(szBuff);
            }
            file.Close();
            delete pFile;
            delete pServer;
        }
    }
    catch (CInternetException* pEx)
    {
        //catch errors from WinInet
        TCHAR pszError[64];
        pEx->GetErrorMessage(pszError, 64);
        AfxMessageBox( pszError);
    }
    session.Close();
    }
請問要如何更改它,才接收得到data ?
搜索更多相关主题的帖子: 交易所 excel 伺服器 
2013-12-24 10:57
快速回复:抓不了資料的網站 :臺灣證券交易所 基本市況報導, 求!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031764 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved