2019年11月02日更新
「Headless Chrome」を「python」で動かす方法!
今回の記事ではHeadless Chromeをpythonで動かす方法を紹介していきます。環境構築の事前準備コメントアウトやコメント解除の手順などを紹介します。Headless Chromeをpythonで動かす流れを簡潔に説明しますので、ぜひご覧ください。
目次
Headless Chromeとは
今回の記事では、「Headless Chrome」を「python」で動かす方法を紹介していきます。環境こうちくや使用するコマンドなど、この記事で確認をしていきましょう。
まずは事前情報として、”Headless Chrome”とは何のことなのか?という点を下記では説明していきます。確認してみましょう。
画面表示なしでコマンドで動作可能なモードのこと
Headless Chromeとは、画面表示なしで操作ができるモードのことをいいます。headlessモードは”コマンド”で実行するので、Chromeなしで動作・操作可能になります。
pythonとは
続いてはpythonとは何かを紹介していきます。上記ではHeadless Chromeをpythonで動かすと記載しましたが、そもそもpythonとは何のことを指すのか。下記でpythonについて確認しましょう
プログラミング言語の一つ
pythonとは、プログラミング言語のひとつです。pythonは、少ない分量でプログラムがかけると言われている言語で、最近流行りのAIや教育分野など、さまざまな場面で利用されています。
プログラミング言語は色んなものがありますが、pythonは「これがあれば大抵は作れる」と言われているくらい優秀です。今回はpythonというプログラミング言語でHeadless Chromeを扱っていくことになります。
「Headless Chrome」を「python」で動かす環境構築の事前準備
上記ではHeadless Chromeとpythonについてを説明しました。続いては環境構築のために必要となる事前準備の流れを紹介していきます。
Headless Chromeをpythonで動かすということは、そもそもそれらのツールがインストールされている必要があります。環境構築のための事前準備を、下記項目を見ながらおこないましょう。
事前準備の手順
環境構築のための事前準備に手順を紹介していきます。環境構築のために必要となるのは、上記で紹介したHeadless Chromeとpython、そして”pip”です。インストール方法を確認しましょう。
pythonのインストール
homebrewを通してインストールする場合は下記のコマンドで実行が可能です
Homebrew インストール |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Python3 インストール |
brew install python3 |
python3 --version |
pipのインストール
pipを使わずとも構築は出来ますが、入れておくのがおすすめです。pythonと下記で紹介するChrome Canaryが入っている状態で、下記のコマンドを実行して環境構築を行いましょう。
pip install selenium pip install chromedriver-binary |
Chrome Canaryのインストール
通常のChromeでも使えないことはないのですが、プログラムミスによりすぐに起動しなくなるといったトラブルがおきがちです。Chrome Canaryの方が、pythonで動かすには適しているでしょう。
Chrome Canaryは検索することですぐにダウンロードページが表示されますので、そこからChrome Canaryの導入をおこなってください。
「Headless Chrome」を「python」で動かす方法~コマンドの説明~
環境構築の下準備を紹介しました。pipやChrome Canaryはなくても良いとされていますが、headless Chromeをpythonで使う際に推奨されているツールです。pipはあった方が手間がないので入れておきましょう。
続いてはコマンドの説明をおこなっていきます。
動作させる場合
実際にheadlessモードで動作をさせたい場合は、どのように操作をおこなえばいいのか。下記で詳細を確認しましょう。
headONモードをコメントアウトする
headlessモードで動かしたい時は、”headONモード”をコメントアウトすればOKです。
解除する場合
逆に、headlessモードを解除したい場合はどのようにすればいいのでしょう。
headlessモードをコメント解除する
先ほどとは逆で、headlessモードを解除したい場合はコメント解除をおこなえば良いのです。headlessモードの切り替えは、コメントアウトとコメント解除で操作しましょう。
「Headless Chrome」を「python」で使う方法
上記では、headlessモードで動作させたい場合のコマンド説明をおこないました。headONモードのコメントアウトとコメント解除により、headlessモードは切り替えができます。
コメントアウトとコメント解除の流れは覚えておきましょう。最後に、headless Chromeをpythonで動かす方法を簡単に下記でまとめていきます。使い方の手順を見ていきましょう。
使い方の手順
コメントアウトとコメント解除による切り替えを覚えたら、さっそく動かしてみましょう。特定のサイトにアクセスしたり、スクリーンショットをとったりすることが可能です。
特定のサイト/Yahoo!検索にアクセスする
特定のサイトにアクセスしたい場合は、下記のように打ち込みます。今回はYahoo!検索へのアクセスを例としたコマンド紹介です。
#Yahoo!検索にアクセス driver.get("https://www.yahoo.co.jp") |
検索窓を操作する
検索窓を操作したい時は、下記のようなコマンドを使います。
# 検索語を入力して送信する。 input_element = driver.find_element_by_name('q') input_element.send_keys('Python') input_element.send_keys(Keys.RETURN) |
必要な情報を取得/出力する
必要な情報を取得し、出力したい場合は下記のコマンドを参考としてください。
# 取得したい要素を検索、すべて取得してループ処理 for a in driver.find_elements_by_css_selector('.w .hd a'): # ページタイトル print(a.text) # ページURL print(a.get_attribute('href')) |
Webページのスクリーンショットを撮る
Webページのスクリーンショットで使うコマンドは以下のとおりです。
# スクリーンショットを撮る。 driver.save_screenshot('firefox_search_results.png') |
まとめ
今回の記事では、headless Chromeをpythonで使う方法を紹介しました。python以外にもpipやChrome Canaryといったツールを利用するので、プログラミングに不慣れな方は事前準備(確認)が必要です。
headless Chromeをpythonで使いたいという方は、この記事を参考にして事前準備は環境構築をおこなってみてください。