【Python】SeleniumでChrome拡張機能を利用する方法

【Python】SeleniumでChrome拡張機能を利用する方法 プログラミング

「SeleniumでChrome拡張機能を使いたい」

上記を実現する方法が、複数存在しています。
この記事では、最も簡単な方法を解説します。

本記事の内容

  • CRXファイルの利用
  • CRXファイルの取得
  • 【動作確認】SeleniumでChrome拡張機能を利用する

それでは、上記に沿って解説していきます。

CRXファイルの利用

本題に入る前に、Seleniumが未インストールなら何も始まりません。
Seleniumをインストールする方法は、次の記事で解説しています。

SeleniumでChrome拡張機能を利用する場合、次の2つが候補になります。

  • Chromeに追加した拡張機能を利用する
  • CRXファイルを利用する

そして、今回は「CRXファイルを利用する」方法を説明します。
CRXファイルを利用する理由は、わかりやすいということです。

それぞれを下記で説明します。

Chromeに追加した拡張機能を利用する

まず、実際にChromeに対象となる拡張機能をインストールする必要があります。
ここは、別にわかりにくいことはありません。

そして、インストールした拡張機能のパスを調べないといけません。
この時点でもう面倒です。

さらに、保守性も悪くなります。
例えば、次のような懸念が出てきます。

  • 拡張機能を再インストールしたらどうなる?
  • 他のPCで動かす場合にどうなる?

インストール先のパスは、おそらく環境毎に異なるでしょう。
再インストール(更新)時にも、パス名が同じである保証もありません。

管理する上では、デメリットが大きいと言えます。
あと、Selenium 4になってどうも動作が不安定です。

Manifest is not valid JSON.  Can't read file.

上記のようなエラーが出て、拡張機能を利用できません。

CRXファイルを利用する

CRXファイルは、Chrome拡張機能のインストールファイルです。
このCRXファイルを用意するのが、以前はそれなりに面倒でした。

しかし、今は便利なモノが存在しています。
それが、次のChrome拡張機能です。

Get CRX – Chrome ウェブストア
https://chrome.google.com/webstore/detail/get-crx/dijpllakibenlejkbajahncialkbdkjc?hl=ja

まずは、Get CRXをインストールします。
Get CRXを使えば、CRXファイルを簡単に作成できます。

以下で、CRXファイルの取得方法を説明します。

CRXファイルの取得

最初に、作成したい拡張機能のウェブストア上のページにアクセスします。
例えば、次の拡張機能としましょう。

Keyword Surfer – Chrome ウェブストア<
https://chrome.google.com/webstore/detail/keyword-surfer/bafijghppfhdpldihckdcadbcobikaca?hl=ja

上記ページ上で右クリックします。
クリック場所は、適当で構いません。

そうすると、右クリックしたメニューにGet CRXの機能が追加されています。
上記機能が表示されるのは、拡張機能ページだけのようです。

では、「Get CRX of this extension」を選択。
ファイルがダウンロードできるので、保存先を選択します。

今回は、以下のファイルをダウンロードできました。

ファイル名は、「KeywordSurfer.crx」に変更しておきます。
日本語をファイル名に使うのは、トラブルの元ですからね。

ちなみに、この拡張機能はSEOツールになります。
Googleで検索したキーワードの検索ボリュームを確認できます。
また、サイト毎の推測アクセス数も表示されます。

また、関連キーワードとその検索ボリュームや類似性も確認可能です。

SEOを行う上で役に立つツールになります。
ただ、情報の鮮度は悪いです。
古い情報が表示されるため、その点は注意が必要になります。

下記では、このCRXファイルを使って動作確認を行います。

【動作確認】SeleniumでChrome拡張機能を利用する

動作確認用のコードは、以下。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome import service as fs

CHROMEDRIVER = "chromedriverのパス"
EXTENSION_PATH = "KeywordSurfer.crxのパス"

# ドライバー指定でChromeブラウザを開く
chrome_service = fs.Service(executable_path=CHROMEDRIVER)

options = webdriver.ChromeOptions()
options.add_argument(f'service={chrome_service}')
options.add_extension(EXTENSION_PATH)

driver = webdriver.Chrome(options=options)

# Googleアクセス
driver.get('https://www.google.com/')

# 検索ボックスを特定
elem = driver.find_element(By.NAME, 'q')
# 「Selenium」と入力して、「Enter」を押す
elem.send_keys('Selenium' + Keys.RETURN)

# ブラウザを閉じる
# driver.quit()

上記コードは、Selenium 4で動きます。
Selenium 3の場合は、一部書き換える必要があります。

そのあたりについては、次の記事で説明しています。

では、コードを実行した結果を確認しておきます。

ブラウザが自動的に立ち上がります。
そして、「Selenium」をGoogleで検索します。
その結果画面は、以下。

拡張機能が、有効であることを確認できます。

以上、SeleniumでChrome拡張機能を利用する方法を説明しました。

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