2016-09-28 36 views
2

我試圖抓住一個簡單的網站的HTML代碼:等待網站加載完所有的JavaScript

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"<< MY URL >>"]]; 
NSError *error; 

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error]; 

if(data){ 
    NSLog(@"Data:\n%@",[[NSString alloc]initWithData:data encoding:NSASCIIStringEncoding]); 
      } 
      else{ 
       //Error 
      } 

我試圖讓HTML代碼的其他一些方法,但所請求的數據總是不完備。這些是代碼的最後幾行:

</script></div> 
<!-- INDEX --> 
<script type="text/javascript" src="<<SourceName>>.js"></script> 

我認爲,嵌入的JavaScript沒有加載。有沒有辦法,等到腳本完全加載並在此之後捕捉整個內容?

回答

0

使用同步請求,您只能捕獲URL的數據。 所以你的連接請求只返回HTML。

您需要使用WebView加載JavaScript。然後,您可以從Webview方法中讀取JavaScript。

+0

感謝您的回答。我想,已經與網頁視圖的委託方法 'webView.request.URL,[webView的stringByEvaluatingJavaScriptFromString:@ 「document.documentElement.outerHTML」]);' 不過只有HTML .. –

+0

@StefanLiesendahl試圖運行JS。相反,將HTML加載到webview中。 –

+0

您可以採取的一種方法是從網站下載HTML,然後解析HTML以查找HTML內的鏈接並進一步下載它們。這裏有一個鏈接可以幫助你解析HTMl文件。 https://www.raywenderlich.com/14172/how-to-parse-html-on-ios – Prav