JAVA を使用して Web サイトから HTML データを抽出したいと考えています。問題は、ユーザーがページの一番下に到達すると、Web ページが下にスクロールし続けることです。下にスクロールする回数は固定です。私の JAVA コードは、最初の部分のみを抽出できます。残りの巻物を抽出するにはどうすればよいですか? JAVAでページ全体を一度にロードする方法はありますか? 任意の助けをいただければ幸いです:)
2 に答える
このタイプの動作はブラウザーに実装され、ユーザーのスクロールアクションを解釈して、AJAXを介してより多くのコンテンツをロードし、ブラウザーのメモリ内DOMを動的に変更します。Javaがサーバー上のWebコンテナーで実行され、そのWebコンテナー(Tomcat、JBossなど)が大量の基礎となるコードを提供するため、アプリが配管について心配する必要がないことを考慮してください。
概念的には、同様のことがクライアントでも発生します。DHTMLWebページは独自の「コンテナ」(ブラウザ)で実行され、UIからネットワーク、DOMなどの豊富な機能を提供します。方程式をJavaプログラムに置き換えるには、DHTML/Javascriptを実行できるブラウザと同等のものを提供する必要があります。
HTMLUnitが請求を埋める可能性があると思いますが、個人的には取り組んでいません。
これは、PhantomJS(http://phantomjs.org/)が設計されたタイプのものである可能性があります。ヘッドレスモードの「実際の」ブラウザを使用して、Webページ全体をクロールし、JavaScriptを実行します。Javaで行っていることをやめて、代わりにPhantomJSを確認することをお勧めします。それはあなたに多くの時間を節約することができます。:)