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

コメント