2016-10-02 9 views
1

例でJsoupを学習しようとしています。非同期タスクでWebサイトのURLをロードしようとしています。しかし、完全なHTMLページの代わりに部分的にしかロードしていません。ヘッダー、フッターなどのコンポーネントをいくつか削除して、WebViewに表示させたいと思います。わからない欠落しているかもしれないもの:Jsoupが完全なHTMLページをロードしていない、部分的にしかロードしない

オプション1:

doc = Jsoup.connect("https://jsoup.org/discussion") 
        .header("Accept-Encoding", "gzip, deflate") 
        .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0") 
        .maxBodySize(0) 
        .get(); 

オプション2:

  doc = Jsoup.connect("https://jsoup.org/discussion").maxBodySize(0).timeout(50000).get(); 


class PageLoader extends AsyncTask<String, Void, Boolean> { 

    @Override 
    protected Boolean doInBackground(String... params) { 
     Document doc = null; 

     try { 
      doc = Jsoup.connect("https://jsoup.org/discussion").maxBodySize(0).timeout(50000).get(); 
      Logging.InfoLog(doc.toString()); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
    } 

    @Override 
    protected void onPostExecute(Boolean aBoolean) { 
     super.onPostExecute(aBoolean); 
    } 
} 

答えて

1

多くのWebページのロードを、追加コンテンツをレンダリング

私は複数のオプションを試してみました非同期JavaScript呼び出しにより、の後にが呼び出されます。 JSoupはページの最初のHTMLだけを返します。

コンテンツを動的に読み込んでレンダリングするページを処理する必要がある場合は、htmlunitなどの異なるツールセットが必要ですが、htmlunitはバックエンドコードでのみ機能します。

+0

お返事ありがとうございます@Andrei Volgin私はHtmlUnitツールでも確認します。私は動的で静的なWebページの一部を取得しようとしています。いつか私はヘッダー、フッターなどを削除したいと思います。私はAndroid WebViewの特定の部分のみにページを表示したいです(つまり、それは完全ではありません)。私はHtmlUnitによってそれを行うことができるはずです。他の良いツールや提案が本当に役立つでしょう。ありがとう –

+0

@Abhrajyoti Kirtaniaバックグラウンドでwebviewを読み込み、サイトの読み込み(javascriptコンテンツを含む)が完了した後にjavascriptを呼び出してコンテンツを削除/変更し、webviewを表示します。私の経験では、HtmlUnitは遅く、しばしばスクリプトを処理することができません。コンテンツに応じて、jsoupとrhinoを組み合わせて使用​​することもできます。 –

+0

@ F.Klein、完全なHTMLを読み込む方法が不思議ですが、私はJSoupで試してみましたが、主要な問題である完全なHTMLページを読み込んでいません。 HTMLページを読み込む最良の方法を教えてください。一度ロードが成功すると、JSoupを使ってページを解析して、あらゆる種類の修正やカスタマイズが可能になります。あなたは、WebView経由で生のHTMLデータを読み込んで、それをJSoup経由でDocumentに変換することを提案していますか?または他の考えてください? –

関連する問題