需要采集的是http://cn.biz.yahoo.com/iframe2/shl/zjlx/xarchives/600396.html
不过我试过了很多编码,都是乱码,有高手帮忙看看?始终没有发现他到底使用的什么编码
模拟访问,不过采集多了会出现999错误,被封掉IP。有好的解决办法吗?除了使用代理。

解决方案 »

  1.   

    text/html; charset=GBK
    用的是GBK
      

  2.   

    解码结果:<link href=../css-hq.css rel=stylesheet type=text/css>
    <table class=12text cellSpacing=1 cellPadding=2 width=100% bgColor=#79b0e6 border=0><tr bgColor=#e5f2ff><td width=24%>&nbsp;</TD><td width=19% align=center>今日</TD><td width=19% align=center>5日</TD><td width=19% align=center>10日</TD><td width=19% align=center>20日</TD></TR><tr bgcolor=#ffffff><td>机构资金进出(万元)</td><td><font color=red>↑91.70</font></td><td><font color=red>↑1867.32</font></td><td><font color=red>↑9189.13</font></td><td><font color=red>↑29723.11</font></td></tr><tr bgcolor=#ffffff><td>资金进出(万元)</td><td><font color=green>↓-1265.44</font></td><td><font color=green>↓-5019.13</font></td><td><font color=green>↓-1877.42</font></td><td><font color=red>↑13660.59</font></td></tr><tr bgcolor=#ffffff><td>机构交易成本(元)</td><td>19.94</td><td>20.10</td><td>19.73</td><td>18.67</td></tr><tr bgcolor=#ffffff><td>机构交易额(万元)</td><td>1741.05</td><td>18006.71</td><td>44487.55</td><td>105532.90</td></tr><tr bgcolor=#ffffff><td>散户交易额(万元)</td><td>7295.79</td><td>42098.52</td><td>91521.27</td><td>164404.10</td></tr><tr bgcolor=#ffffff><td>散户资金进出(万元)</td><td><font color=green>↓-1357.14</font></td><td><font color=green>↓-6886.45</font></td><td><font color=green>↓-11066.54</font></td><td><font color=green>↓-16062.52</font></td></tr><tr bgcolor=#ffffff><td>机构、散户资金比</td><td>1:4.19</td><td>1:2.34</td><td>1:2.06</td><td>1:1.56</td></tr><tr bgcolor=#ffffff><td>机构换手率(%)</td><td>0.35</td><td>3.61</td><td>9.09</td><td>22.80</td></tr><tr bgcolor=#ffffff><td>总换手率(%)</td><td>1.83</td><td>12.06</td><td>27.77</td><td>58.09</td></tr></TABLE><!-- w5.biz.cnb.yahoo.com uncompressed/chunked Tue Jan  1 20:36:47 CST 2008 -->
      

  3.   

    to chehw:
    我也曾经试过GBK的,一样是乱码啊。能否SHOW一下你的代码?
      

  4.   

    int CMainWindow::NavigateTo(LPCTSTR lpszUrl)
    {
    DWORD dwSize=0;
    DWORD dwRead;
    DWORD dwTotalRead=0;
    HINTERNET hSession=NULL,
    hConnect=NULL,
    hRequest=NULL;
    BOOL rc=FALSE;
    LPSTR buffer;
    LPWSTR wszText=NULL; TCHAR szDomain[MAX_PATH]=TEXT("");
    TCHAR szVirPath[1024]=TEXT(""); TCHAR * pCursor=(TCHAR *)_tcschr(lpszUrl, TEXT('/'));
    if(NULL!=pCursor) 
    {
    lstrcpyn(szDomain, lpszUrl, pCursor-lpszUrl+1);
    lstrcpy(szVirPath, pCursor+1);
    }else
    lstrcpyn(szDomain, lpszUrl, MAX_PATH); hSession=WinHttpOpen(L"WinHttpTest - NavigateTo", WINHTTP_ACCESS_TYPE_NO_PROXY, WINHTTP_NO_PROXY_NAME, WINHTTP_NO_PROXY_BYPASS,0);
    if(NULL==hSession) goto Label_Exit; hConnect=WinHttpConnect(hSession, szDomain, INTERNET_DEFAULT_PORT, 0);
    if(NULL==hConnect) goto Label_Exit; hRequest=WinHttpOpenRequest(hConnect, L"GET", szVirPath, NULL, WINHTTP_NO_REFERER , WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
    if(NULL==hRequest) goto Label_Exit; rc=WinHttpSendRequest(hRequest, WINHTTP_NO_ADDITIONAL_HEADERS, 0, WINHTTP_NO_REQUEST_DATA, 0, 0, 0);
    if(!rc) goto Label_Exit; rc=WinHttpReceiveResponse(hRequest, 0);
    if(!rc) goto Label_Exit; HANDLE hFile=INVALID_HANDLE_VALUE;


    int fUnicode=-1;
    UINT uCodePage=CP_ACP; DWORD dwBufferSize=16384;
    buffer=(LPSTR)LocalAlloc(LPTR, dwBufferSize);
    WinHttpQueryHeaders(hRequest, WINHTTP_QUERY_CONTENT_TYPE, WINHTTP_HEADER_NAME_BY_INDEX, 
    buffer, &dwBufferSize, WINHTTP_NO_HEADER_INDEX); SetWindowText(m_hEdit, (LPCWSTR)buffer); _tcsupr((wchar_t *)buffer);
    pCursor=(TCHAR *)_tcsstr((wchar_t *)buffer, TEXT("CHARSET="));
    if(NULL!=pCursor) 
    {
    pCursor+=8;
    if(lstrcmp(pCursor, TEXT("UTF-8"))==0) uCodePage=CP_UTF8;
    } LocalFree(buffer);
    // TCHAR szFileName[MAX_PATH]=TEXT("..\\files\\");// wsprintf(szFileName, TEXT("..\\files\\%s_%s.html"), szDomain, szVirPath);

    // hFile=CreateFile(szFileName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, NULL,
    // CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    // if(INVALID_HANDLE_VALUE==hFile) goto Label_Exit;
    // WriteFile(hFile, buffer, dwBufferSize, &dwBufferSize, NULL);
    do
    {
    dwSize=0;
    dwRead=0;
    rc=WinHttpQueryDataAvailable(hRequest, &dwSize);
    if(rc)
    {
    buffer=(LPSTR)LocalAlloc(LPTR, sizeof(CHAR)*(dwSize+1));

    rc=WinHttpReadData(hRequest, (LPVOID)buffer, dwSize, &dwRead);

    if(rc)
    {

    {
    wszText=(LPWSTR)LocalAlloc(LPTR, sizeof(WCHAR)*(dwSize+100));
    MultiByteToWideChar(uCodePage, 0, buffer, dwRead, wszText, dwSize+100);
    SendMessage(m_hEdit, EM_REPLACESEL, -1, (LPARAM)wszText);
    LocalFree(wszText);
    }

    // SendMessage(m_hEdit, EM_SETTEXTEX, (WPARAM)&ste, (LPARAM)buffer);
    if(INVALID_HANDLE_VALUE!=hFile)
    WriteFile(hFile, buffer, dwRead, &dwRead, NULL);
    // SetDlgItemTextA(m_hWnd, 1000, buffer);
    }
    LocalFree(buffer);
    }
    dwTotalRead+=dwRead;
    }while(dwSize>0);

    CloseHandle(hFile);
    Label_Exit:
    if(NULL!=hRequest)
    {
    WinHttpCloseHandle(hRequest);
    }
    if(NULL!=hConnect)
    {

    WinHttpCloseHandle(hConnect);
    }
    if(NULL!=hSession) 
    {
    WinHttpCloseHandle(hSession);
    } return rc;
    }