Webスクレイピングや自動テストでよく使用されるSeleniumですが、ログイン情報などをCookieとして保存したい場合も多いでしょう。この記事ではSeleniumでブラウザのCookieを出力・保存、そして読み込む方法を解説します。
前提条件
seleniumの基本的な使い方について以下の記事で解説しています
関連記事:SeleniumでAmazonの売上ランキングをスクレイピングするサンプルコード
関連記事:SeleniumでのCookieの取得や外部からの読み込み方法について
SeleniumでのCookieの出力と保存
まずは、ブラウザでアクセスした後のCookieをPythonのコードで取得してみましょう。
from selenium import webdriver import json from selenium.webdriver.chrome.options import Options driver=webdriver.Chrome() driver.get("https://twitter.com/home?lang=ja") cookies = driver.get_cookies() # cookieの確認 print(cookies) # cookieの出力保存 with open('cookietest.json', 'w', newline='') as outputdata: json.dump(cookies, outputdata) print('send cookie')
外部に保存したCookieをSeleniumに読み込む
次に、保存したCookieを読み込んで使う方法です。
from selenium import webdriver import json from selenium.webdriver.chrome.options import Options driver=webdriver.Chrome() URL = "https://twitter.com/home?lang=ja" # 対象ページへアクセス(1回目) driver.get(URL) # cookieの読み込み json_open = open('cookie.txt', 'r') cookies = json.load(json_open) for cookie in cookies: tmp = {"name": cookie["name"], "value": cookie["value"]} driver.add_cookie(tmp) # 対象ページへアクセス(2回目) driver.get(URL)
注意点
Cookieを読み込む前に、そのCookieが有効なURLに先にアクセスしておく必要があります。そうしないと、Cookieは設定されません。
まとめ
この記事では、Seleniumを使用してブラウザのCookieを出力保存・読み込みする基本的な方法について解説しました。この方法を利用すれば、ログイン情報などを維持しつつ複数のセッションで作業することが可能になります。
Attention Required! | Cloudflare
コメント