一个从网页tag里面分析url和url标题的类
2010-05-12 20:35:19 来源:WEB开发网一、不得不说的废话
我知道用 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连接文字 |
五、这个类的处理流程
更多精彩
赞助商链接