中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 网络与通信
一个从网页tag里面分析url和url标题的类
作者:未知 时间:2005-07-20 14:18 出处:VC知识库 责编:chinaitpower
              摘要:一个从网页tag里面分析url和url标题的类

一个从网页tag里面分析url和url标题的类

作者:Kiki猫De弟弟

下载源代码

一、不得不说的废话

  我知道用 MSHTML 的 IHTMLDocument2 的 get_links 获取 IHTMLElementCollection 接口,通过 IHTMLElementCollection 来获取 IHTMLAnchorElement,再通过 IHTMLAnchorElement 接口的get_href 我们就可以得到网页的所有链接了!但这是用 MSHTML 的办法,就我本人而言,总喜欢自己来搞,不喜欢用看不到内部的东西(虽然 microsoft 写得比我的好)。所以,我就自己封装了一个通过分析网页标记字符,来获取 url 的类,这个类我知道有缺陷,所以就公布出来,希望有人能在我这个类的基础上从新搞出一个更好的新版本。

二、关于这个类

  也许有人要说,分析网页的url不就是分析 href=…什么的不就可以了吗?但是说起来很多事情是容易的,但要尽可能的做好一个事情,也知道真正的去尝试了才会知道。比如 有的连接是这样的 url=…。比如 javascript 里面的连接(我现在分析javascript的部分也很有问题),比如 相对地址的and so on……在这个类里面能处理的我已经尽可能的处理了,无奈我的水平有限,还不是很完美。

三、这个类的接口

  接口函数只有一个就是这个类的构造函数 ,下面是这个函数的声明:

CWebHost(const CString& m_str_webcode,     /*网页代码*/
     vector<HyperLink>& m_vec_URL,     /*分析得到的url和url标题的结构*/
     CString& str_URL);           /*本页的url*/

HyperLink 是一个结构我放在URLSturct文件里面:

//URLSturct_.h
//超连接数据结构
#ifndef _____HyperLinkTag_h____
#define _____HyperLinkTag_h____
//超连接数据集
typedefstruct tagHyperLinkTag{
  //link address;
  CString str_Hyperlink;

  //link text;
  CString str_HyperlinkText;
}HyperLink;
#endif

四、这个类的函数列表

函数名字

功能

CWebHost(……);

构造函数

void OnRetrunWebContent(……);

返回所有链接

void OnGetHtmlURL(……);

获取html的url

void OnGetJumpURL(……);

获取跳转的url

void OnReturnFrameURL(……);

获得嵌套代码的URL

CString OnConversionURL(……);

把URL转换成绝对地址

void OnAnalyseJavascrript(……);

返回Javascript代码里的URL

CString OnGetLinkText(……);

取URL连接文字

、这个类的处理流程

、详细代码

代码太多,限于篇幅,所以有劳各位到源代码里面去看。

、还是想说些废话

  该类分析上是存在缺陷的,希望大家多多提出问题,或者干脆你就从新写出一个类来。从小我的语文水平就烂,写得不明白请不要见怪。

编译通过 VC7.1+Windows Server 2003

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有