如何通过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,一经查实,立即删除!

相关文章

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日,第四十二、四十三颗北斗导航卫星在西昌卫星发射中心腾空而起。作为北斗三号第十八颗、第十九颗卫星,此次双星的成功发射,标志着北斗三号全球组网…

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

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

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

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

好的PPT——准备工作

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

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 初创企业,开始积极从技术各个维度拥抱人工智能,在模式识别基础理论、图像处理、计算机视觉以及语音信息处理展开了集中研究与持续创新,探索模式识别机理以及有效计算方法,为解决…

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

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

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

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

手写字母数据集转换为.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对于边缘技术已属较晚表态、较晚布局者,但其技术主张却与前两业者有…

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

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

智联汽车:复盘国内巨头布局

来源:申万宏源摘要:从今年阿里9月云栖大会、华为10月全联接大会、百度11月世界大会、腾讯11月合作伙伴大会可以发现BATH均高调展示了各自在汽车科技领域的研发成果;而京东、滴滴两家公司近两年来关于汽车科技领域的动态亦在频频更新。▌车联网:车载OS竞争…

Tomcat基础教程(一)

Tomcat, 是Servlet和JSP容器,其是实现了JSP规范的servlet容器。它在servlet生命周期内包容,装载,运行,和停止servlet容器。 Servlet容器的三种工作模式: 1. 独立的Servlet容器 Servlet容器与基于JAVA技术的Web服务器集…

opencv--图像金字塔

一,高斯金字塔--图片经过高斯下采样 """ 高斯金字塔 """ def gauss_pyramid():img cv2.imread(./data/img4.png)lower_reso cv2.pyrDown(img)lower_reso2 cv2.pyrDown(lower_reso)plt.subplot(131), plt.imshow(img)plt.title(In…

中国移动:5G蜂窝IoT关键技术分析

来源:5G本文讨论了蜂窝物联网的技术现状,针对增强机器类通信和窄带物联网技术标准,提出了2种现网快速部署方案,并进一步指出了C-IoT面向5G的演进路径。该路径充分考虑了5G网络中网络功能虚拟化、软件定义网络、移动边缘计算和大数…

清华大学发布:人脸识别最全知识图谱

来源:智东西摘要:本期我们推荐来自清华大学副教授唐杰领导的学者大数据挖掘项目Aminer的研究报告,讲解人脸识别技术及其应用领域,介绍人脸识别领域的国内玩人才并预测该技术的发展趋势。自20世纪下半叶,计算机视觉技术…

图像变换dpi(tif->jpg),直方图均衡化,腐蚀膨胀,分水岭,模板匹配,直线检测

一.图像变换dpi 1.示例1 import numpy as np from PIL import Image import cv2 def test_dp():path./gt_1.tif# imgImage.open(path)# print(img.size)# print(img.info)imgcv2.imread(path)imgImage.fromarray(img)print(img.size)print(img.info)img.save(test.jpg, dpi(3…

CV中的经典网络模型

目标检测 目标检测,不仅要识别目标是什么(分类),还要知道目标的具体位置(可以当作回归来做)。 RCNN Selective Search 算法获得候选框,Alexnet提取特征,SVM对每个候选框区域打分。…

技术阅读周刊第十一期

技术阅读周刊,每周更新。 历史更新 20231124:第七期20231201:第八期20231215:第十‍期 A Comprehensive guide to Spring Boot 3.2 with Java 21, Virtual Threads, Spring Security, PostgreSQL, Flyway, Caching, Micrometer, O…