我正在開發一個應用程序並嘗試顯示網頁的一部分。ios從網頁獲取頁面源代碼?
我的想法是第一個,得到頁面源,然後解析它!
我已經找到了一個有用的HTML解析器,但仍然在如何獲取頁面源?
我發現的所有內容都是關於UIWebview的。喜歡的東西:
uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]];
我正在開發一個應用程序並嘗試顯示網頁的一部分。ios從網頁獲取頁面源代碼?
我的想法是第一個,得到頁面源,然後解析它!
我已經找到了一個有用的HTML解析器,但仍然在如何獲取頁面源?
我發現的所有內容都是關於UIWebview的。喜歡的東西:
uiwebview = [[UIWebView loadRequest:[NSURLRequest requestWithURL:url]];
使用
NSString *string = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"] encoding:NSUTF8StringEncoding error:nil];
你錯過了google.com之前的http://。 – 2011-05-18 15:46:51
謝謝迪帕克,我明白了! – Jerry 2011-05-18 15:49:06
在主線程中使用+stringWithContentsOfURL:
缺點是你的UI將阻止而請求處於激活狀態。當用戶在網絡上出現高延遲,服務器響應緩慢或者請求結束超時時,這會變得特別成問題。在最後一種情況下,用戶可能會很長時間看到UI塊。
+stringWithContentsOfURL:
方法也缺少一種方法來在服務器不返回200狀態的情況下爲您提供錯誤信息。
要在代表異步地執行的請求,而不阻塞UI,使用NSURLConnection
和獲取數據:
- (void)connection: (NSURLConnection *)connection didReceiveData: (NSData *)data
{
// receivedData is an NSMutableData object
[ receivedData appendData: data ];
}
然後開球解析當連接完成:
- (void)connectionDidFinishLoading: (NSURLConnection *)connection
{
[ self parseHTMLData: receivedData ];
}
謝謝更多的緊張,我會給它一個鏡頭! – Jerry 2011-05-18 15:52:36
你能提一下什麼是有用的HTML解析器? :)我也需要一個... – 2011-05-19 12:55:05