MFC抓取網頁代碼簡單版。

來源:互聯網
上載者:User

標籤:style   blog   http   color   os   io   for   ar   

最近又在網上找了一些有關MFC抓取網頁代碼的文章看,發現有個比較簡單的代碼,和大家分享下。

    CInternetSession session(NULL, 0);    CHttpFile* htmlFile = NULL;    CString strLine, strHtml;    CString url = _T("http://www.tqyb.com.cn/data/gzWeather/gz_weatherForecastInDays.js?");    TCHAR sRecv[1024];    UINT CodePage = 65001;//CP_UTF8:65001 CP_ACP:0    strHtml = _T("");    //擷取網頁源碼      htmlFile = (CHttpFile*)session.OpenURL(url);//重新開啟串連      DWORD dwStatusCode;  //接受請求傳回值    htmlFile->QueryInfoStatusCode(dwStatusCode);    if (dwStatusCode == HTTP_STATUS_OK)    {        while (htmlFile->ReadString(sRecv, 1024))        {            // 編碼轉換,可解決中文亂碼問題              //gb2312轉為unicode,則用CP_ACP              //gbk轉為unicode,也用CP_ACP              //utf-8轉為unicode,則用CP_UTF8              int nBufferSize = MultiByteToWideChar(CodePage, 0, (LPCSTR)sRecv, -1, NULL, 0);            wchar_t *pBuffer = new wchar_t[nBufferSize + 1];            memset(pBuffer, 0, (nBufferSize + 1)*sizeof(wchar_t));            //gb2312轉為unicode,則用CP_ACP              //gbk轉為unicode,也用CP_ACP              //utf-8轉為unicode,則用CP_UTF8              MultiByteToWideChar(CodePage, 0, (LPCSTR)sRecv, -1, pBuffer, nBufferSize*sizeof(wchar_t));            strHtml += pBuffer;            strHtml += "\r\n";            delete pBuffer;        }    }        htmlFile->Close();    session.Close();    delete htmlFile;

注意了,這個網址代碼格式是UTF8,中文會亂碼,所以加了一個字元之間的轉換,//PageCode = 65001.

而且在設定vs時,字元集要設定成多字元。

項目->屬性->字元集->多位元組字元。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.