2011-10-28 10 views
0

ウェブからデータを取得するiphoneアプリケーションを作成しています.HTMLを解析するためにHPPLEを使用していますが、すべて正常に動作しますが、 HTMLウェブページ.this内のJavaScript(のdocument.write)で、私のHTMLウェブ源page source実行時にJavaScriptによって作成されるアクセスエレメント

<table dir = "rtl ......."> 
<tbody> 
<script src = "get.aspx?type=js&file=ajax&rev=3"......> 
<script language = "JavaScript" src = "get.aspx?type=js&file=mc&rev=6"></script> 
<script>..</script> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 
<script>..</script> 
<tr>..</tr> 
<tr>..</tr> 
<tr>..</tr> 

である私は、すべての要素がSafariブラウザの開発ツールで< TR>をラベル見ることができますが、私はhtmlコードをダウンロードしようとすると、私が得るソースには、私が望むHTMLタグは含まれていません。私の悪い英語の息子。私はいくつかの人が私を助けてくれることを願っています。

答えて

2

JavaScriptをサポートする最も簡単な方法は、UIWebViewです。ビュー階層に追加する必要はありません。

UIWebView *webView = [[UIWebView alloc] init]; 
NSString *url = @"http://www.google.com"; 
webView.delegate = self; 
frames = 0; // NSUInteger instance variable to track frame loads 
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];  

UIWebViewDelegate方法

- (void)webViewDidStartLoad:(UIWebView *)webView { 
    frames++; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webView { 
    frames--; 
    if (frames > 0) return; 

    NSString *document = [webView stringByEvaluatingJavaScriptFromString:@"document.body.innerHTML"]; 

    // Use HPPLE to parse 
} 
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { 
    // Handle error 
} 

今、あなたはdocumentテキストを持っていることを、あなたはHPPLE

+0

webViewDidFinishLoadについて: – NouNou

+0

このメソッドは、ページ上でフレームごとに1回呼び出されます。ページがフレームセット/フレームを持たないことを知っているなら、それは一度だけ呼び出されると仮定することができます –

1

ブラウザの開発者ツールでこのようなHTMLを取得できます。そこにある<html>タグを右クリックし、 "Edit as Html"を選択してください。このコードをコピーして、いくつかのhtmlファイルに貼り付けます。

部分コードをコピーすることもできます。この場合、必要なコード(ラッピングタグ)を含む特定のタグを右クリックする必要があります。

+0

thansにそれを渡すことができますが、私はあなたよりもHTMLデータをダウンロードするのではなくコピーして、過去の – NouNou

+0

したいです悩んでいる、私の友人。 "wget"のようなツールはあなたを助けることができません。 JavaScriptをダウンロードしてその動作を再現する必要があります。 –

+0

okドミトリーどのように私はそれを行うことができます、私はHTMLの解析に新しいです。 – NouNou

1

私は自分自身を使用したことはありませんが、説明を見て、それは解析とjavascriptの実行については何も言いません。

Safariブラウザツールで表示される内容は、DOMの視覚的な表現です。これはブラウザがHTMLから生成するものです。 Javascriptは、最初のHTMLがロードされた後にそれを変更するために使用できます。

hppleは元のHTMLを解析するように設計されていますが、javascriptを使用して作成されるDOM要素は含まれません。だからあなたはそこに立ち寄った。うまくいけば、ここで誰かがあなたが望むことができるようにjavascriptを解析できるツールを知っています。

+0

これはまさに私が何を望んでいるのかInvisibleBacon – NouNou

関連する問題