最近在抓取網絡數據並進行解析式遇到了html格式,由於平常解析JSON和XML格式數據較多,對html的解析有些生疏了。
下面簡單記錄一下使用是網上的第三方類TFHpple類進行HTML解析。
在進行解析前,先將下面的第三方類添加到工程中:

添加以上三個類必須添加一個庫,這個庫是:libxml2.2.dylib。
還需要設置一些路徑參數這個路徑的設置,在 targets中,在build settings搜索Header Search Paths,將debug和release設置不同的值;
debug的值設置成:/usr/include/libxml2
release的值設置成:${SDKROOT}/usr/include/libxml2
將以上內容設置好后,將#import "TFHpple.h"添加到解析html的類中,再寫解析方法;
一般思路如下:
1.首先將網頁的html轉換成oc能夠認識的NSString數據;用到的方法如下:
NSString *dataString = [NSString stringWithContentsOfURL:[NSURL URLWithString:htmlString] encoding:NSUTF8StringEncoding error:nil]; //htmlString是html網頁的地址
url為保存html網頁的地址,根據數據編碼格式的不同來選擇NSString的編碼格式,格式錯誤則會報錯261
2.截取所需數據所在的位置,得到最后所需解析的字段contEnd
3.將dataString轉換成NSData,給TFHpple類用
NSData *htmlData = [contEnd dataUsingEncoding:NSUTF8StringEncoding];//contEnd是需要解析的字段
3.設置html中節點,根據節點取值,例如
.....
,可以用節點來取值;
使用htmlData和nodeString,解析自己需要的值:
NSArray * elements 這個數組中就有需要的值
遍歷數組,就可以將需要的內容提取出來




