ホームページ >バックエンド開発 >Python チュートリアル >Python で Selenium を使用した Web ページのスクリーンショットの例
Selenium は、ブラウザーが一連のタスクを自動的に実行できるようにするツールで、自動テストによく使用されます。ただし、Web ページのスクリーンショットを撮るために使用することもできます。現在、Java、C#、Ruby、Python の 4 つのクライアント言語をサポートしています。 Python を使用する場合は、コマンド ラインに「sudo easy_install selenium」と入力して Enter キーを押すだけで、Python バージョンの Selenium クライアント サポートをインストールできます。
Python を例に挙げると、次のスクリプトを使用して、指定したページ (スクリプト ホーム ホームページなど) のスクリーンショットを撮ることができます。
# -*- coding: utf-8 -*- # # author: oldj <oldj.wu@gmail.com> # from selenium import webdriver import time def capture(url, save_fn="capture.png"): browser = webdriver.Firefox() # Get local session of firefox browser.set_window_size(1200, 900) browser.get(url) # Load page browser.execute_script(""" (function () { var y = 0; var step = 100; window.scroll(0, 0); function f() { if (y < document.body.scrollHeight) { y += step; window.scroll(0, y); setTimeout(f, 50); } else { window.scroll(0, 0); document.title += "scroll-done"; } } setTimeout(f, 1000); })(); """) for i in xrange(30): if "scroll-done" in browser.title: break time.sleep(1) browser.save_screenshot(save_fn) browser.close() if __name__ == "__main__": capture("http://www.jb51.net")
上記のコードでは、ページを開いた直後にスクリーンショットを撮っていないことに注意してください。代わりに、ページのスクロール バーを一番下にドラッグしてから、ページ上で JavaScript スクリプトを実行しました。トップに戻って、スクリーンショットを撮りました。この利点は、ページの下部に遅延読み込みコンテンツがある場合、通常はこの操作の後にコンテンツが読み込まれることです。
PageSaver などのブラウザ プラグインと比較すると、Selenium はより強力です。たとえば、ページ上で JS を挿入して実行したり、マウス クリックやその他の動作をシミュレートしたり、複数のインスタンスを実行したりできます。スレッド)と同時にスクリーンショットを撮ります)。この観点からすると、Selenium を使用してページのスクリーンショットを撮るのは良い選択のように思えます。