こんにちは!今回は、PythonとSeleniumを使って「ヘッドレスモード」でスクレイピングを行う方法を初心者向けに解説します。まずは、何が何だか分からない方のために簡単に説明します。
Seleniumとは?
SeleniumはWebブラウザの自動操作ツールで、Pythonだけでなく多くのプログラミング言語から利用できます。例えば、Webサイトのログインやフォームの入力、ボタンのクリックなど、人間がブラウザで行うような操作をプログラムで自動化できます。
ヘッドレスモードとは?
ヘッドレスモードとは、ブラウザの画面を表示せずにバックグラウンドで動作させるモードのことを指します。スクレイピングや自動操作を行う際に、画面が表示されない方が邪魔にならず便利です。また、サーバーなどGUIがない環境でも動作させることができます。
それでは、PythonとSeleniumを使ってヘッドレスモードでGoogleのトップページを開くプログラムを作成してみましょう。
必要なもの
- Python(3.6以上推奨)
- Selenium
- ChromeDriver(使用するブラウザがChromeの場合)
Pythonがインストールされていない場合は、Pythonの公式サイトからダウンロードしてインストールしてください。SeleniumとChromeDriverは以下の手順でインストールします。
- ターミナルを開き、以下のコマンドを入力してSeleniumをインストールします。
pip install selenium
- ChromeDriverはこちらの公式サイトからダウンロードしてください。ダウンロードしたら、適当な場所に配置し、そのパスを覚えておいてください。
サンプルプログラム
以下に示すプログラムは、PythonとSeleniumを使ってヘッドレスモードでGoogleのトップページを開き、そのタイトルを表示するものです。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# ヘッドレスモードの設定
options = Options()
options.add_argument('--headless')
# ChromeDriverのパスと上で設定したオプションを指定してChromeを起動
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)
# Googleのトップページを開く
driver.get('https://www.google.com')
# タイトルを表示
print(driver.title)
# スクリーンショット
driver.get_screenshot_as_file("test.png")
# ブラウザを閉じる
driver.quit()
このプログラムを保存し、Pythonで実行すると、Googleのトップページのタイトルがコンソールに表示されます。なお、/path/to/chromedriverは自分が配置したChromeDriverのパスに書き換えてください。
プログラムの解説
- 最初に必要なモジュールをインポートします。
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
Optionsクラスを使って、ヘッドレスモードを有効にする設定を行います。
options = Options()
options.add_argument('--headless')
webdriver.Chromeを使ってChromeを起動します。引数にはChromeDriverのパスと上で設定したオプションを指定します。
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)
driver.getを使ってGoogleのトップページを開きます。
driver.get('https://www.google.com')
driver.titleを使ってページのタイトルを取得し、それをprintで表示します。
print(driver.title)
- driver.get_screenshot_as_fileでスクリーンショットを撮ります
- 最後に
driver.quitを使ってブラウザを閉じます。
driver.quit()
以上が、PythonとSeleniumを使ってヘッドレスモードでスクレイピングを行う方法の一例です。スクレイピングは法律やサイトの利用規約に抵触しない範囲で行うように注意しましょう。
関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード
関連記事:【Python】Seleniumでサイトのログイン情報を保存する方法

コメント