PythonとSeleniumを使って、すでに起動しているブラウザを操作する方法について説明します。この記事は、PythonとSeleniumが基本的に使える方、そして既に起動しているブラウザをPythonで自動操作したい方向けです。
手順1: Chromeのポート番号を固定して起動する
まず、Chromeのポート番号を固定して起動します。これは、ChromeのEXEファイル実行時にパラメータを渡すことで可能です。具体的には、以下のようなコマンドを実行します。
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" -remote-debugging-port=9222 --user-data-dir="適当なパス(chromeのデータがいっぱいできても良い場所)"
このコマンドをバッチファイルに保存しておくと便利です。
手順2: Seleniumから開いているChromeを操作する
次に、PythonのSeleniumから開いているChromeを操作します。以下のようなPythonコードを記述します。
from selenium import webdriver
from os.path import join
root = join(__file__, "..") # webdriverオブジェクトを作る(ブラウザが開く)
driver_path = join(root, "chromedriver.exe")
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(executable_path=driver_path, options=options)
# ページのタイトルを表示する
print(driver.title)
print("========== source ========== ")
print(driver.page_source)
このコードを実行すると、既に開いているChromeのページタイトルが表示されます。
以上が、PythonとSeleniumを使って起動済みのブラウザを操作する方法です。この方法を使えば、自分が操作したブラウザのタブで開いているURLをすべて取得することが可能です。.