WebDriverからcookieの一覧を取得することはget_cookies()を使用すれば容易に出来るものの、それをrequestsにセットするには一手間が必要でした。
というのも、get_cookiesで取ってくれるデータはcookiejarという型のデータで、そのままではセットする際にエラーが起きてしまいました。
そこで、requestsにはcookiejarからdictに変換出来る関数(cookiejar_from_dict)が用意されているので、それを使ってrequests用のcookieにしてから入れるという方法を学びました。
やり方としては以下のような感じです。
import requests from selenium import webdriver driver = webdriver.Chrome() driver.get('http://') session = requests.Session() for cookie in driver.get_cookies(): // ここではcookiejarの値が取れてきてる for item in cookie: if type(cookie[item]) != str: cookie[item] = str(cookie[item]) session.cookies.update(requests.cookies.cookiejar_from_dict(cookie)) // cookiejar_from_dictを使用してcookieをdict型に変換してからセット session.get('http://', timeout=10)
以上で、cookieをセット出来るようになりました。
大分ニッチな用途ですが、seleniumでアクセスしつつ、そのcookieを使用してrequestsでAPIにアクセスするなどで活用出来るかと思います。