【GoogleColab】PythonのSeleniumでサイト全体のスクリーンショットを保存する方法

この記事を読んでくれている人の中には、Pythonでスクレイピングをおこなう人が多いと思いますが、サイトの中身ではなく、サイトのスクリーンショット を撮りたいと思う時があると思います。

私も定期的に自作のスクレイピングツールを回しています。

例えば競合サイトのABテストの状況だったり、リライトの状況だったり、あとはアフィリエイト設置の状況だったりなどを調査する時にスクリーンショットを撮影できると捗りますね。

今回はSeleniumを使ってブラウザを操作し、スクリーンショット を保存する方法を載せておきます。

ご参考ください。

ちなみにSeleniumでブラウザを操作し、スクリーンショットを保存する方法はネットに多く情報が出回っていますので、今回はGoogle ColabでSeleniumを操作してスクリーンショットを撮影します。

最初できるか不安でしたが、無事に実行させることができました。

PythonのSeleniumでスクリーンショットを撮る(保存する)方法

実行前の準備など(pip)

webdriverを使うための準備

SeleniumとBeautifulsoupを使うための準備

ページの読み込みを待つための待機用ライブラリ準備

スクリーンショットを撮るurlの設定と、レンダリング。Beautifulsoupへの流し込み。

実行画面のスクリーンショット

実際にgoogle colabで上記コードを動かしてみます。

動かした結果は以下のようになるはずです。

保存されたスクリーンショットはgoogleのサーバーに一時保存されています。

スクリーンショットはgoogle colab上で見ることができます。

左のサイドバーにあるフォルダアイコンをクリックするとディレクトリ構造を確認することができます。

全てのコードを実行させた後なら、「screenshot.png」というファイルが生成されているはずです。

screenshot.pngをダブルクリックするとgoogle colab上にスクショが表示されます。

無事、指定したurlのスクリーンショットが撮られているはずです・・・。

しかし、□だらけで、文字化けをしてしまっていますね。

google colabでplotなどを使ってことがある方はお分かりかと思いますが、Google colabのサーバーにはデフォルトで日本語のフォントは用意されていません。

これを知った時、Google Colabで日本語サイトのスクリーンショットは不可能なのかと思いましたが、強引に日本語フォントをダウンロードすれば、Google Colabでも完全なスクリーンショットを撮ることができました。

Google Colabでの文字化けを解決する方法

日本語をGoogle Colabの接続先にダウンロードするコードを追加するだけで解決します。

ちなみにこのコードはスクリーンショットのみならず、plotの時文字化けも解決できます。

軸や凡例に日本語を使いたいのに文字化けしてしまって困っている人がいましたら、ぜひ試してみてください。

ちなみにコードを追加するのはコードの先頭に追加してください。

私はpipなど、準備をする前の段階で日本語フォントをダウンロードしてしまうようにしています。

その後、プログラムを全て実行し直しましょう。

スクリーンショットで文字化けしていたところが、修正されているはずです。

以上です。

コードが動かない、不明点等ありましたら、ツイッターまでご連絡ください。

DM等々で対応いたします。

The following two tabs change content below.
sensiki

sensiki

名前:sensiki 職業:サラリーマン。いわゆる理系男子で大学からプログラミングを学び仕事でも活用中。好きな言語はPython。流行に疎いこともあり最近の話題を独自の視点でまとめていこうと思いブログ開始。スクレイピングや統計を用いたエントリを書きたいと思いまながらツールを作成中。

広告

The following two tabs change content below.
sensiki

sensiki

名前:sensiki 職業:サラリーマン。いわゆる理系男子で大学からプログラミングを学び仕事でも活用中。好きな言語はPython。流行に疎いこともあり最近の話題を独自の視点でまとめていこうと思いブログ開始。スクレイピングや統計を用いたエントリを書きたいと思いまながらツールを作成中。