標籤:
最近在抓取網路資料並進行解析式遇到了html格式,由於平常解析JSON和XML格式資料較多,對html的解析有些生疏了。
下面簡單記錄一下使用是網上的第三方類TFHpple類進行HTML解析。
在進行解析前,先將下面的第三方類添加到工程中:
添加以上三個類必須添加一個庫,這個庫是:libxml2.2.dylib。
還需要設定一些路徑參數這個路徑的設定,在 targets中,在build settings搜尋Header SearchPaths,將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 = [contEnddataUsingEncoding:NSUTF8StringEncoding];//contEnd是需要解析的欄位
3.設定html中節點,根據節點取值,例如
.....
,可以用節點來取值;
使用htmlData和nodeString,解析自己需要的值:
NSArray * elements 這個數組中就有需要的值
遍曆數組,就可以將需要的內容提取出來
iOS開發中的HTML解析