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
これで準備完了です。
Python で Selenium を使用して名前付き Cookie を取得する
次のコードで必要なライブラリをインポートし、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'}
Python で Selenium を使用してすべての Cookie を取得する
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'}]
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