使用CInternetSession和CHttpFile提取网页源码
生活随笔
收集整理的這篇文章主要介紹了
使用CInternetSession和CHttpFile提取网页源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
程序界面:
為編輯框添加一個對應的變量: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);elsesPath = _T("");return sPath; }轉載于:https://www.cnblogs.com/joeblackzqq/archive/2011/01/07/1929488.html
總結
以上是生活随笔為你收集整理的使用CInternetSession和CHttpFile提取网页源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WCF 第八章 安全
- 下一篇: 如何解决:Android中 Error