程序界面:
为编辑框添加一个对应的变量: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;
}