使用LIBTIDY解析HTML文件的小例子乙個

2021-06-05 15:34:41 字數 1673 閱讀 2230

libtidy是乙個開源的用來診斷,分析,生成html文件的乙個庫

下面的例子是使用libtidy獲取頁面鏈結的例子

**如下:

#ifndef parsepage_hpp

#define

parfspage_hpp

#include 

<

string

>

#include 

<

vector

>

#include 

<

tidy

/buffio.h

>

#include 

<

tidy

/fileio.h

>

#include 

<

tidy

/tidy.h

>

#include 

<

tidy

/tidyenum.h

>

#include 

<

tidy

/platform.h

>

//! 解析html頁面 

class

parsepage

~parsepage()

public://

! 解析給定檔案

bool

loadfile(

const

char

*file)

//!解析給定記憶體

bool

loadbuffer(

const

char

*buffer)

//! 內容解析

void

check()

//! 獲取鏈結

intgetlinknumber()

const

std::

string

getlinkbyindex(

intindex) 

private

:void

dohref(tidyattr attr);

void

checkhref(tidynode node);

private

:tidydoc     doc;

tidynode    root;

std::

string

cur;

intrank;

string      links;

};#endif

//! ccsdu2004

實現:#include 

<

boost

/algorithm

/string

.hpp

>

#include 

"parsepage.hpp

"void

parsepage::dohref(tidyattr attr)

//! 鏈結位址

else

}else

links.push_back(href);}}

void

parsepage::checkhref(tidynode node)

checkhref(child);}}

這個物件比較簡單

呼叫check之後所有的頁面鏈結在links中

使用HtmlParser解析HTML

如果要對html進行解析,提取html的資料或者修改html資料,htmlparser是乙個不錯的選擇.使用htmlparser可以解析本地和網路上的html資料 parser parser new parser new winista.text.htmlparser.http.httpprotoc...

使用HtmlParser解析HTML

如果要對html進行解析,提取html的資料或者修改html資料,htmlparser是乙個不錯的選擇.使用htmlparser可以解析本地和網路上的html資料 parser parser new parser new winista.text.htmlparser.lex.lexer new w...

使用TFHpple解析html

使用tfhpple解析html 前期準備工作 引入靜態庫檔案 新增庫檔案的 header search paths 注意,必須選中 all 準備工作結束 使用詳情 我們來解析 中的title標籤哦.思路是這樣子的 1.將網頁轉換成nsdata 2.按照標籤值在nsdata中資料進行查詢 3.檢索出想...