Selenium

【Selenium】ヘッドレスモードで画面を起動せずにスクレイピングを行う

この記事は約5分で読めます。

 

こんにちは!今回は、PythonとSeleniumを使って「ヘッドレスモード」でスクレイピングを行う方法を初心者向けに解説します。まずは、何が何だか分からない方のために簡単に説明します。

Seleniumとは?

 

SeleniumはWebブラウザの自動操作ツールで、Pythonだけでなく多くのプログラミング言語から利用できます。例えば、Webサイトのログインやフォームの入力、ボタンのクリックなど、人間がブラウザで行うような操作をプログラムで自動化できます。

ヘッドレスモードとは?

 

ヘッドレスモードとは、ブラウザの画面を表示せずにバックグラウンドで動作させるモードのことを指します。スクレイピングや自動操作を行う際に、画面が表示されない方が邪魔にならず便利です。また、サーバーなどGUIがない環境でも動作させることができます。

 

それでは、PythonとSeleniumを使ってヘッドレスモードでGoogleのトップページを開くプログラムを作成してみましょう。

 

必要なもの

 

  • Python(3.6以上推奨)
  • Selenium
  • ChromeDriver(使用するブラウザがChromeの場合)

 

Pythonがインストールされていない場合は、Pythonの公式サイトからダウンロードしてインストールしてください。SeleniumとChromeDriverは以下の手順でインストールします。

 

  1. ターミナルを開き、以下のコマンドを入力してSeleniumをインストールします。
bash
pip install selenium
  1. ChromeDriverはこちらの公式サイトからダウンロードしてください。ダウンロードしたら、適当な場所に配置し、そのパスを覚えておいてください。

 

サンプルプログラム

 

以下に示すプログラムは、PythonとSeleniumを使ってヘッドレスモードでGoogleのトップページを開き、そのタイトルを表示するものです。

 

python
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のパスに書き換えてください。

プログラムの解説

 

  1. 最初に必要なモジュールをインポートします。
python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
  1. Options クラスを使って、ヘッドレスモードを有効にする設定を行います。
python
options = Options()
options.add_argument('--headless')
  1. webdriver.Chrome を使ってChromeを起動します。引数にはChromeDriverのパスと上で設定したオプションを指定します。
python
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)
  1. driver.get を使ってGoogleのトップページを開きます。
python
driver.get('https://www.google.com')
  1. driver.title を使ってページのタイトルを取得し、それを print で表示します。
python
print(driver.title)
  1. driver.get_screenshot_as_fileでスクリーンショットを撮ります

 

  1. 最後に driver.quit を使ってブラウザを閉じます。
python
driver.quit()

以上が、PythonとSeleniumを使ってヘッドレスモードでスクレイピングを行う方法の一例です。スクレイピングは法律やサイトの利用規約に抵触しない範囲で行うように注意しましょう。

 

関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード

関連記事:【Python】Seleniumでサイトのログイン情報を保存する方法

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました