phantomjs は「完全な」ページ読み込みを待機しません 質問する

phantomjs は「完全な」ページ読み込みを待機しません 質問する

私は使用していますファントムJSいくつかの Web ページを読み込むには v1.4.1 が必要です。サーバー側にアクセスできないので、サーバー側へのリンクを取得するだけです。Web ページで Adob​​e Flash をサポートする必要があるため、Phantom の旧バージョンを使用しています。

問題は、多くの Web サイトがマイナー コンテンツを非同期で読み込んでいることです。そのため、すべてがまだ読み込まれていないときに、Phantom の onLoadFinished コールバック (HTML の onLoad に類似) が早すぎるタイミングで起動されます。たとえば、広告などのすべての動的コンテンツを含むスクリーンショットを作成するために、Web ページが完全に読み込まれるのを待つ方法を提案してもらえますか?

ベストアンサー1

もう1つのアプローチは、通常の方法と同様に、ページが読み込まれた後、レンダリングを行う前にPhantomJSに少し待つように指示することです。ラスタライズこの例では、JavaScript が追加リソースの読み込みを完了できるように、タイムアウトが長くなります。

page.open(address, function (status) {
    if (status !== 'success') {
        console.log('Unable to load the address!');
        phantom.exit();
    } else {
        window.setTimeout(function () {
            page.render(output);
            phantom.exit();
        }, 1000); // Change timeout as required to allow sufficient time 
    }
});

おすすめ記事