2015-01-10 61 views
0

我需要從網站獲取HTML。但是,當我使用下面的代碼時,它只顯示帶有Javascript的小型HTML,而不是完整的最終HTML,我在Web瀏覽器上看到的。如何在iOS上獲得最終的HTML字符串

我用這個代碼:

NSString* urlString = @"http://mywebsite.com"; 
NSString* htmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]]; 

當我使用AFNetworking也得到同樣的結果。

如何獲得完整的HTML?

+1

您還期待什麼?請記住,該網站可能會返回通常發送到移動設備的HTML,而不是您在計算機上看到的內容。 – rmaddy

+0

@rmaddy在瀏覽器中,我看到web有圖像。但在HTML回報中,我沒有看到圖像鏈接。 – huync

+1

真實的瀏覽器下載主要的URL和引用的Javascript文件,然後運行Javascript。該JavaScript可能會更改頁面。只需下載一個URL(使用您發佈的代碼)就不會嘗試訪問或執行主頁面中引用的任何Javascript。 – rmaddy

回答

1

我有我的問題的答案。我使用一個UIWebView來加載這個網頁。在完成委託後,我可以通過以下代碼獲取完整的HTML:

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    webview = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
    [webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com"]]]; 
    webview.delegate = self; 
    [self.view addSubview:webview]; 

} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    NSString *yourHTMLSourceCodeString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"]; 
    NSLog(@"Did finish load: %@", yourHTMLSourceCodeString); 
} 

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { 

} 

@end 
相關問題