• 使用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);
    	else
    		sPath = _T("");
    	
    	return sPath;
    }
    
  • 相关阅读:
    关于石家庄铁道大学课程信息管理系统详细制作过程
    文件与流课后作业
    动手动脑java异常处理
    【HAOI2010】订货
    传纸条
    至省选の計劃
    P1382 光棍组织
    P1834 种花小游戏
    USACO 2015 December Contest, Gold Problem 2. Fruit Feast
    python操作
  • 原文地址:https://www.cnblogs.com/joeblackzqq/p/1929488.html
Copyright © 2020-2023  润新知