VC获取网页内容

VC++中CEF获取网页HTML frame的GetSource(CefRefPtr visitor)虽然不涉及与Render进程的交互,但也是异步的。GetSource只负责交代任务给visitor,然后继续执行后面的代码;而visitor执行获取HTML的任务,完成后回调visitor的visit方法。 阅读详情

下面是codeguru上的一个使用wininet类的例子,它能够从给定的url地址中

获取该文件。



这个例子实现了两个方法:

cstring getwebpage(const cstring& url);

void seterrormessage(cstring s);


getwebpage是主要的方法,后面跟的url地址必须是一个完整的url地址,

比如http://www.baidu.com

seterrormessage方法, 能够处理程序中发生的错误。

 在VC中创建一个类cwebworld

// cwebworld.h: interface for the cwebworld class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_CWEBWORLD_H__7A9E56E1_0168_4CBF_A6BF_3FDFE5B88A73__INCLUDED_)
#define AFX_CWEBWORLD_H__7A9E56E1_0168_4CBF_A6BF_3FDFE5B88A73__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "wininet.h"
class cwebworld 
{
public:
 cwebworld();
 virtual ~cwebworld();
 
 void seterrormessage(CString s);
 CString getwebpage(const CString &url);

private:
 CString m_errormessage;
 HINTERNET m_session;//声明一个http链接句柄

};

#endif // !defined(AFX_CWEBWORLD_H__7A9E56E1_0168_4CBF_A6BF_3FDFE5B88A73__INCLUDED_)

 

 

 

// cwebworld.cpp: implementation of the cwebworld class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "web.h"
#include "cwebworld.h"
#include <BASETSD.H>
//#include "WebThief.h"
#pragma   comment(lib, "Wininet.lib ")


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#define agent_name "codegurubrowser1.0"


cwebworld::cwebworld()
{
 DWORD dwerror;
 // initialize the win32 internet functions
 // 构造函数中初始化网络连接
 m_session = ::InternetOpen(agent_name,INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
 
 dwerror = GetLastError();
}

cwebworld::~cwebworld()
{
 //closeing the session
 //虚拟函数中释放连接
 ::InternetCloseHandle(m_session);
}
CString cwebworld::getwebpage(const CString &url)
{
 HINTERNET hHttpFile;
 char szSizeBuffer[32] = {0};
 DWORD dwLengthSizeBuffer = sizeof(szSizeBuffer);
 DWORD dwFileSize;
 DWORD dwBytesRead;
 bool bSuccessful;
 CString contents;

 //设置莫阿人错误信息
 contents = m_errormessage;

 //打开url并获取http文件句柄
 hHttpFile = InternetOpenUrl(m_session,(const char *)url,NULL,0,0,0);

 if (hHttpFile)
 {
  //获取文件大小
  bool bquery = ::HttpQueryInfo(hHttpFile,HTTP_QUERY_CONTENT_LENGTH,szSizeBuffer,&dwLengthSizeBuffer,NULL);

  if (bquery)
  {
   //计算本地内存空间大小
   dwFileSize = atol(szSizeBuffer);
   LPSTR szContents = contents.GetBuffer(dwFileSize);

   //读取http文件
   bool bread = ::InternetReadFile(hHttpFile,szContents,dwFileSize,&dwBytesRead);

   if (bread)
   {
    bSuccessful = true;
   }
   ::InternetCloseHandle(hHttpFile);
  }
  
 }
 else
 {
  bSuccessful = false; 
 }
 return contents;
}
void cwebworld::seterrormessage(CString s)
{
 m_errormessage = s;
}

 

VC++监控,分析,控制网页元素 实现网页监控,如百度,可分析主页的各项连接显示到下方的编辑框内 立即下载

相关推荐

VC++抓取远程文件(URL网页的源代码)

内容索引:VC/C++源码,网络相关,远程  这是一个通过inet来获取网页内容的程序,远程获取文件内容,实际上是通过URL地址来得到指定地址下某文档的源代码,如截图示,一看便知,不过如果是一些文本类型的文件,也是能获取到的,只不过你需要输入的地址完全正确。

VC6中用DOM遍历网页中的元素

原文:点击打开链接 下面是本人写的demo http://download.youkuaiyun.com/detail/qq752923276/3809411delphi7源码 一、摘要   在我们编写的程序中,如果想要实现对浏览器打开的网页进行监视、模拟操纵、动态提取用户输入、动态修改......等功能,那么请你抽出宝贵的时间,继续往下阅读。本文介绍的知识和示例程序都是围绕如何遍历 HTML

天道酬勤 2024

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 587

vc 获取网页内容(HTTP)

     BOOL bResult = FALSE;    // 初始化WinInet 环境        HINTERNET hInternet = InternetOpen("CEHTTP", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);        if(hInternet == NULL)        return ;        //

梦里花 8326

最佳量化交易的计算机操作系统

本文在Creative Commons许可证下发布   我经常被问到的一个问题是:用哪种计算机操作系统和计算软件进行量化交易的理论研究和代码实现?   我想把这个问题简化,从挑选的计算软件和计算库来反推最佳使用的计算机操作系统。简而言之,就是在本文撰写的时候而言,如果你想进行基于任何严肃的数学理论和金融量化交易研究理论,这里特指机器学习或者深度学习。并且需要在本地研究机器上使用桌面版本,...

evilqliang的博客 2306

强化学习入门8—深入理解DDPG

本文是强化学习入门系列的第八篇,前面我们讲Actor-Critic时提到了DDPG。DDPG是google DeepMind团队提出的一种用于输出确定性动作的算法,它解决了Actor-Critic 神经网络每次参数更新前后都存在相关性,导致神经网络只能片面的看待问题这一缺点。同时也解决了DQN不能用于连续性动作的缺点。

小菜羊的博客 4314

VC中使用CInternetSession抓取网页内容

在 VC 中用 WinInet 的 CInternetSession::OpenURL(url),得到一个 CFile,读取其中的内容即可,详细代码如下#include   #include      int main(int argc, char* argv[])  {      CInternetSession session("HttpClient");   

snail8384的专栏 1906

Electron多窗口开发避坑指南:Pinia状态同步的3种解决方案对比

本文深入探讨了在Electron多窗口应用中实现Pinia状态同步的三种核心方案。针对Electron多窗口架构下状态隔离的挑战,文章对比了基础事件通信、共享存储以及智能Pinia插件等方案的优劣与适用场景,并提供了生产级的实现指南与选型建议,帮助开发者构建健壮高效的桌面应用。

spice的博客 479

vc网页html,vc 获取网页内容(HTTP)

BOOL bResult = FALSE;// 初始化WinInet 环境HINTERNET hInternet = InternetOpen("CEHTTP", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);if(hInternet == NULL)return ;// 打开http sessionHINTERNET hSession = Intern...

weixin_31021649的博客 432

汇川AM402、H3U和上位机C#ModebusTcp通讯

目录一、测试任务二、测试环境三、PLC工程1、组态配置2、ip地址、端口号 3、全局变量定义四、C#端Winform程序创建1创建主界面 2、创建子窗口 3、运行生成,界面效果4、Modebus协议说明5、Modebus操作说明六、测试1、寄存器读测试 2、MW1300寄存器的BIT位3、写寄存器测试4、PLC断电或者断网 七、工程下载连接1、PLC作为ModebusTCP端,端口号都是502,PC端上位机软件作为TcpClient去连接多台PLC。PC端读写PLC寄存器。2、PC端在有的PLC断电、断网的

panjinliang066333的博客 2万+

【Windows Server 2019】活动目录 (Active Directory) ——将计算机加入域和脱离域

博文介绍了如何将计算机加入AD域和脱离AD域,包括加入域,验证客户机加入到域后的信息,使用域账户用户在客户机上登录,使用本地账户用户在计算机上登录,脱离域。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6169

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

如何通过VC的 CHttpFile 抓取网页内容  引用地址:http://www.398588.com/Article/T9/78.aspx 在点击一个按钮时开始请求你输入的地址。 void CHttpFileDlg::OnButton1() {     CString url;     GetDlgItemText(IDC_EDIT1,url);  // IDC_EDIT1

踏雪无痕 1822

B3640 T3 句子反转

要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。第一次做的时候0分,两个小时没做出来。仅一行,表示程序对句子的处理结果。仅一行,即需要反转的句子。

小前日记 366

VC++6.0 通过HTTP方式获取网页

 最近做了个项目,用VC开发,很有技术难度,习惯了Java开发,VC都忘差不多啦,呵呵~ 为了吃饭,硬着头皮也得做下去啊。项目里面用到了获取网页数据,需要http header 来验证客户端合法性,找了些资料,都有问题。还是自己写吧,用 CInternetSession//头部包含afxinet.h #include CInternetSession::OpenURL函数原型为: CS

muzi_yun的专栏 3905

实战交易策略 篇二十二:情绪流龙头交易策略

在股票市场中,机构主导趋势,游资驱动热点,散户易被情绪裹挟,形成“金字塔”式生态链,并存在情绪传递、强者恒强、物极必反的规律特点。股市是资金驱动的情绪博弈场,价格波动由群体心理、资金博弈和预期差共同驱动,核心是资本逐利性与人性贪婪恐惧的交织,兼具资源配置、财富再分配与风险定价功能。涨停加速与逃逸缺口(主升强化)凹字板/平台突破(趋势延续)天量弱转强(分歧买点)不参与首波(二波策略)情绪周期(道术合一)主线思维(聚焦核心)开盘抢筹(竞价博弈)一字助攻(情绪强化)分批进出(滚动操作)

生活在别处 1487

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC通过HTTP方式获取网页 - 四度专栏 - 优快云Blog

在VC中通过HTTP方式获取网页,我试过好几种方式,但是都有问题,现将我用的两种虽然也有问题但基本可以实现的方式写出来,如果大家有更好的方式或者能解决我所遇到的问题,请告诉我:QQ158792331,邮箱:werther161@yahoo.com.cn 第一种: 首先要包含这个头文件:#include CInternetSession mySession; CHttpFile* myHt

qiuqiu173的专栏 794

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC获取网页源码的三种方式

VC获取网页源码的三种方式 //有三种方法 '方法一(只适用于MFC工程): //参数URL:网页地址 //返回CString就是网页源码 //返回的网页源码是UTF8格式,要转成ANSI等编码才能正常显示 #include CString GetWebSource(CString URL) {     CInternetSession Session(NULL,0);

wjhtu_csdn的博客 1146

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

VC通过HTTP方式获取网页

在VC中通过HTTP方式获取网页,我试过好几种方式,但是都有问题,现将我用的两种虽然也有问题但基本可以实现的方式写出来,如果大家有更好的方式或者能解决我所遇到的问题,请告诉我:QQ158792331,邮箱:werther161@yahoo.com.cn  第一种:  首先要包含这个头文件:#include    CInternetSession mySession;   CHttpFile* my

bxf0011的专栏 1250

最近做了个短期程序“百度MP3搜索”,把内容帖一帖

百度MP3设计文档: (2004-9-13,renzhongfang@nju.org.cn,有丰富输入法编程、串口编程、网络编程、网站设计、数据库编程经验,C、VC、java、VB) 1、需求功能:通过程序从baidu(http://mp3.baidu.com/搜索内容,并提出内容(主要是URL地址),主要要提交2个函数void GetLyric(string SongName

[realfun]-编程生活、为家不为国 2378

VC++中使用使用winnet类获取网页内容

 2005-09-01VC++中使用使用winnet类获取网页内容 - [VC专栏]微软提供的Winnet类是一个应用层的网络通信组件,它可以使你的应用程序很容易的实现http、ftp、gopher等协议而不需要你去深入的了解协议本身的规范。而之前,如果要想做类似的应用,我们必须了解socket编程并且要对协议本身非常熟悉,哪怕是一个非常非常简单的程序。下面是codegur

guomei的专栏 1万+
上一篇: extern常见问题总结
下一篇: elastix 和freePBX默认的密码
Commander_Officer
博客等级 码龄16年 38粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值