使用CInternetSession和CHttpFile提取网页源码

来源:互联网 发布:sql server 定义变量 编辑:程序博客网 时间:2024/06/06 01:14

程序界面:

为编辑框添加一个对应的变量:m_sUrl,再为Button1添加点击事件,主要代码如下:

void CGetHtmlCodeDlg::OnButton1(){    CString sHtml;     UpdateData();    GetHtmlCode(m_sUrl, sHtml);    WritetoFile(sHtml);    MessageBox("提取网页源码完成");} void CGetHtmlCodeDlg::GetHtmlCode(const CString url, CString &html){    CInternetSession session;    CHttpFile * file = NULL;         try    {        file = (CHttpFile *)session.OpenURL(url);        if(file)        {            CString line;            while(file->ReadString(line) != NULL)            {                html += line + "\n";            }            file->Close();        }    }    catch (CInternetException* e)    {        e->Delete();        html = "CInternet Exception";    }    file = NULL;    session.Close();} BOOL CGetHtmlCodeDlg::WritetoFile(const CString& sValue){    CString sFile = GetExePath() + "\\1.html";         CStdioFile file;    if(file.Open(sFile, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate))    {        file.SeekToEnd();              // 移动文件指针到末尾        file.WriteString(sValue);        file.Close();    }    return FALSE;} CString CGetHtmlCodeDlg::GetExePath(){    char sFileName[256] = {0};    CString sPath = _T("");         GetModuleFileName(AfxGetInstanceHandle(), sFileName, 255);    sPath.Format("%s", sFileName);    int pos = sPath.ReverseFind('\\');    if(pos != -1)        sPath = sPath.Left(pos);    else        sPath = _T("");         return sPath;}



来源:http://www.cnblogs.com/joeblackzqq/archive/2011/01/07/1929488.html
0 0
原创粉丝点击