如何通过VC的 CHttpFile 抓取网页内容

在点击一个按钮时开始请求你输入的地址。
void CHttpFileDlg::OnButton1() 
{
   CString url;
   GetDlgItemText(IDC_EDIT1,url); // IDC_EDIT1 是一个输入框的名字。
   char* headers="Accept:*/*\r\nAccept-Language:zh-cn\r\nUser-Agent:VCTestClient\r\n";
   CInternetSession Sess;
   CHttpFile* cFile = (CHttpFile*)Sess.OpenURL(url,1,INTERNET_FLAG_TRANSFER_ASCII||INTERNET_FLAG_RELOAD,headers,strlen(headers));

   DWORD dwStatusCode;
   cFile->QueryInfoStatusCode(dwStatusCode);
   if(dwStatusCode == HTTP_STATUS_OK)
   {
     CString szData,szAllData;
     while(cFile->ReadString(szData))
     {
       szAllData += szData;
       szAllData += "\r\n";
     }

     cFile->Close();
     Sess.Close();
     CString name = GetFileName(url,TRUE);
     CFile file(name, CFile::modeCreate | CFile::modeWrite);
     file.Write(szAllData,szAllData.GetLength());
     file.Close();
   }
   else
   {
     MessageBox("请求失败。。。。");
   }

}

下面是获取请求的文件名,在另存到本地时用同样的文件名。
CString CHttpFileDlg::GetFileName(CString FileName, BOOL Ext)
{   
   int Where;   
   Where = FileName.ReverseFind('\\');  
   if (Where == -1)  
     Where = FileName.ReverseFind('/');  
   CString FileTitle = FileName.Right(FileName.GetLength() - 1 - Where);  
   if (!Ext)  
   {  
     int Which = FileTitle.ReverseFind('.');   
     if (Which != -1)   
       FileTitle = FileTitle.Left(Which);   
   }
   return FileTitle;   
}
如下图:
CHttpFile 应用程序
小结:
在此程序中我认识了三个类的应用,一个是CHttpFile、另一个是CFile、还有一也是最为关键的CInternetSession。
CFile: 类CFile是基类的Microsoft基础类档案。它直接提供无缓冲,二进制磁盘输入/输出服务,并间接支持文本文件和存储的文件通过其派生类。 CFile工程与CArchive类支持序列化的Microsoft基础类物体。
CHttpFile:类CHttpFile规定的功能要求,并宣读文件HTTP服务器上的。如果您的互联网会议上读取数据的一个HTTP服务器,您必须创建一个实例CHttpFile 。
CInternetSession: 使用类CInternetSession创建和初始化一个或几个同时互联网会话,如有必要,来描述您的连接到代理服务器。如果您的Internet连接必须保持期限的申请,您可以创建一个CInternetSession成员类CWinApp 。

转载于:https://www.cnblogs.com/ainima/p/6331148.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大牛们的资料与主页

Mikolajczyk 特征检测主页http://lear.inrialpes.fr/people/mikolajczyk/ SURF算法项目主页http://www.vision.ee.ethz.ch/~surf/ 南开大学媒体计算实验室 显著性检测https://mmcheng.net/zh/effisalobj/ FT显著性算法https://ivrlwww.epfl.ch/supplementary_material/RK_CV…

windows安装ubuntu16.04LTS 更换系统源为阿里源 安装ubuntu找不到windows 删除内核 更换pip源 升级pip源报错 ubuntu命令

一,安装ubuntu ubuntu镜像Index of /ubuntu-releases/18.04/ 首先在windows下硬盘划分出100G的空间,并且制作一个ubuntu的启动盘。在windows安装easy BCD用于开机启动ubuntu。下面看安装过程: 选择语言,我选择是英语 我选择的是…

基本系统部署完成!北斗三号闪耀中国智慧

▲ 第四十二、四十三颗北斗导航卫星乘长三乙火箭升空来源:航天501部2018年11月19日,第四十二、四十三颗北斗导航卫星在西昌卫星发射中心腾空而起。作为北斗三号第十八颗、第十九颗卫星,此次双星的成功发射,标志着北斗三号全球组网…

win10下安装node

本来挺简单的,但是在命令行node -v可以看到版本号,npm -v却没有一起安装成功。提示一个模块找不到:Cannot find module ../lib/utils/unsupported.js。一开始以为是环境变量没有设置,但是其实安装工程中已经自动添加了&#xff0c…

基于Keras的卷积神经网络用于猫狗分类(进行了数据增强)+卷积层可视化

接着我上一篇博客,https://blog.csdn.net/fanzonghao/article/details/81149153。 在上一篇基础上对数据集进行数据增强。函数如下: """ 查看图像增强是否发生作用 """ def see_pic_aug():train_datagen ImageDataGene…

paip.字符串操作uapi java php python总结..

paip.字符串操作uapi java php python总结..java and php 相互转换..import strUtil>>> requiry(strUtil.php)作者Attilax 艾龙, EMAIL:1466519819qq.com来源:attilax的专栏地址:http://blog.csdn.net/attilaxuapi:函数 语法 功能…

深圳神经科学研究院院长谭力海: AI取代人脑? 不, 必须向人脑“学习”!

来源:读创科技摘要:从“深蓝”到“阿尔法狗”,人工智能技术日益成熟,“AI何时替代人脑”的争论也在不断升级。人工智能真的能超越人脑吗?11月15日在高交会“颠覆性创新技术”主题论坛上,深圳神经科学研究院…

好的PPT——准备工作

首先介绍PPT的一些基本技巧。 在选项界面,我们需要调整一些选项:控制最大可回退次数;语法自动检查;字体嵌入PPT,调整自动保存的时间间隔。 对于一些常用操作,可以右键添加到常用工具栏。 可以很方便地调整不…

Ubuntu10.04下安装Ns2的一系列错误及解决方案

安装之前改一下nam1.11下的agent.h文件73行 Null改为0 第一个错误: xxx configuration: Syntax error: Unterminated quoted string, tcl,tk,otcl安装时都会遇到这个问题(原因是gcc对语法要求更加严格)。 解决办法: 分别进入以下3…

ubuntu安装谷歌浏览器 typora+出现编码错误‘ascii‘ codec can‘t encode character ‘\u6b66‘+docker里安装tensorrt报错

一.首先下载谷歌浏览器 https://www.google.cn/chrome/ sudo dpkg -i google-chrome-stable_current_amd64.deb 就安装好了,search谷歌浏览器就可以啦。 二,安装typora # optional, but recommendedsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-ke…

中国安防为何世界最强?中科院AI+安防报告,解密8大趋势和8大限制【附下载】| 智东西内参...

来源:智东西传统的安防企业、新兴的 AI 初创企业,开始积极从技术各个维度拥抱人工智能,在模式识别基础理论、图像处理、计算机视觉以及语音信息处理展开了集中研究与持续创新,探索模式识别机理以及有效计算方法,为解决…

Keras入门

首先当然是安装Keras。需要注意的是Keras有三种后端backend。后端是意思是Keras需要依赖他们进行张量的运算。这三种后端是:tensorflow,Theano,CNTK(微软)。这也是keras的优势:可以在多种生态中发布。一般使…

利用Inception-V3训练的权重微调,实现猫狗分类(基于keras)

利用Inception-V3训练的权重微调实现猫狗的分类,其中权重的下载在我的博客下载资源处,https://download.csdn.net/download/fanzonghao/10566634 第一种权重不改变直接用mixed7层(mixed7呆会把打印结果一放就知道了)进行特征提取…

刘锋:互联网左右大脑结构与钱学森开放复杂巨系统

作者:刘锋 互联网进化论作者 计算机博士前言:1990年,钱学森提出了开放的复杂巨系统理论,并提出以人为主,人机结合,从定性到定量的综合集成研究方法,他也预见性的提出“因特网正好生动地体现了…

DL中常用的numpy

读txt文件 按行读取有三种方式,注意readlines和readline的区别。open是python自带打开方式,如果打不开,可以使用encoding"UTF-8"指定解码方案。 读取得到一行之后,行首行尾可能存在一些不需要的字符,就可以…

paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结

paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中xml读取通过jdk xml初始化c3c0在代码中。。。。。作者Attilax 艾龙, EMAIL:1466519819qq.com来源:attilax的专栏地址:http://blog.csdn.net/attilaxproxoolController.ini()…

手写字母数据集转换为.pickle文件

首先是数据集,我上传了相关的资源,https://download.csdn.net/download/fanzonghao/10566701 转换代码如下: import numpy as np import os import matplotlib.pyplot as plt import matplotlib.image as mpig import imageio import pickle…

一文看懂谷歌的AI芯片布局,边缘端TPU将大发神威

来源:新电子2018年7月Google在其云端服务年会Google Cloud Next上正式发表其边缘(Edge)技术,与另两家国际公有云服务大厂Amazon/AWS、Microsoft Azure相比,Google对于边缘技术已属较晚表态、较晚布局者,但其技术主张却与前两业者有…

JS学习笔记-1--基本知识和注意事项

1、JS开始的目的主要是验证表单的输入验证 2、是一种具有面向对象能力的、解释型语言。是基于事件驱动的相对较安全的客户端脚本语言 3、JS 特点:松散型:变量不具备一个明确的类型; 对象属性:把属性名可以映射成任意的属性值&a…

opencv图像处理中的一些滤波器+利用滤波器提取条形码(解析二维码)+公交卡倾斜矫正+物体尺寸丈量

一般来说,图像的能量主要集中在其低频部分,噪声所在的频段主要在高频段,同时图像中的细节信息也主要集中在其高频部分,因此,如何去掉高频干扰同时又保持细节信息是关键。为了去除噪声,有必要对图像进行平滑,可以采用低通滤波的方法去除高频干扰。图像平滑包括空域法和频域法两大…