Python Selenium を使用して Cookie を取得する

Fariba Laiq 2023年6月21日
  1. 前提ライブラリのインストール
  2. Python で Selenium を使用して名前付き Cookie を取得する
  3. Python で Selenium を使用してすべての Cookie を取得する
Python Selenium を使用して Cookie を取得する

Selenium は、Web アプリケーションの有名なテスト フレームワークです。 Web ブラウザーを制御し、特定のアクションを実行するスクリプトを作成します。

この記事では、Linux で Selenium をセットアップし、Cookie を取得して、HTTP 要求でフォーマットするための段階的な手順を説明します。

前提ライブラリのインストール

Selenium のプロットを使用するには、最初に ChromeDriver を使用して Selenium とブラウザー ドライバーをインストールする必要があります。 選択したターミナルで以下のコマンドを実行することで、これを簡単に実現できます。

ChromeDriver をインストール

ChromeDriver は、Selenium WebDriver が Chrome と対話するために使用する別の実行可能ファイルです。 Chrome Web ブラウザーでタスクを自動化するには、ChromeDriver もインストールする必要があります。

Chrome ブラウザーのバージョンに基づいて、互換性のあるドライバーを選択する必要があります。 ChromeDriver をインストールして構成する手順は次のとおりです。

  • このリンクをクリックしてください。 Chrome ブラウザーのバージョンとオペレーティング システムの種類に応じて、ChromeDriver をダウンロードします。
  • Chrome ブラウザーのバージョンを確認するには、Chrome の右上隅にある 3つのドットをクリックし、[ヘルプ] をクリックして、[Google Chrome について] を選択します。 Aboutセクションで Chrome のバージョンを確認できます。
  • zip ファイルを解凍し、Chrome ドライバーを実行します。

セレンをインストールする

Selenium をインストールするには、次のコマンドを使用します。

pip install selenium

また、正しい Python バージョンで作業することも重要です。 この記事では、バージョン 3.10.4 を使用しています。

ターミナルで次のコマンドを実行すると、現在インストールされている Python のバージョンを確認できます。

python --version

これで準備完了です。

次のコードで必要なライブラリをインポートし、Chrome ドライバーへのパスを指定しました。 このコードを使用する場合は、それに応じてパスを変更してください。

次に、URL (この場合は http://www.google.com) に移動し、現在のブラウザーのコンテキストに対して定義された名前と値を使用して Cookie を追加しました。 Cookie を取得するには、get_cookie() メソッドを使用し、Cookie 名を引数として渡してその値を取得しました。

コード例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

driver = webdriver.Chrome(r"E:\chromedriver_win32\chromedriver.exe")
driver.get("http://www.google.com")
driver.add_cookie({"name": "my_cookie", "value": "delftstack"})
print(driver.get_cookie("my_cookie"))

出力:

{'domain': 'www.google.com', 'httpOnly': False, 'name': 'my_cookie', 'path': '/', 'secure': True, 'value': 'delftstack'}

get_cookies() メソッドを使用して、引数を指定せずにすべての Cookie を取得しました。 この場合、現在のブラウジング コンテキストのシリアル化された Cookie データを返します。

ただし、ブラウザが使用できなくなった場合はエラーが返されます。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

driver = webdriver.Chrome(r"E:\chromedriver_win32\chromedriver.exe")
driver.get("http://www.google.com")
driver.add_cookie({"name": "cookie1", "value": "delftstack1"})
driver.add_cookie({"name": "cookie2", "value": "delftstack2"})
print(driver.get_cookies())

出力:

[{'domain': 'www.google.com', 'httpOnly': False, 'name': 'cookie2', 'path': '/', 'secure': True, 'value': 'delftstack2'}, {'domain': 'www.google.com', 'httpOnly': False, 'name': 'cookie1', 'path': '/', 'secure': True, 'value': 'delftstack1'}, {'domain': '.google.com', 'expiry': 1683449080, 'httpOnly': True, 'name': 'NID', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '511=jG4Loar3RnUPlWlCqLgy0_91KhWEVmdnIfcppZaWR_KThFAtcD8JMCOYG_Yf1TrevFkG5Y9WOpfx9HV6MFamlRvchElWP46TiH-DCCf_bnto4-HOGTZpDN5cSCRI2NHZahNbhgPu4oMDM2My4MK3kQc7y_7N8ShOIAqDe0j_irs'}, {'domain': '.google.com', 'expiry': 1683189877, 'httpOnly': True, 'name': 'AEC', 'path': '/', 'sameSite': 'Lax', 'secure': True, 'value': 'AakniGPzQVs6uZH9iaixodFHhyrFSOk2Ji7p3ATkJSmOOlngCml58E6Khg'}, {'domain': '.google.com', 'expiry': 1670229880, 'httpOnly': False, 'name': '1P_JAR', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '2022-11-05-08'}]
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn