程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 一個從網頁tag裡面分析url和url標題的類

一個從網頁tag裡面分析url和url標題的類

編輯:關於VC++

一、不得不說的廢話

我知道用 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

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved