Skip to main content
 首页 » 编程设计

python之将请求 cookie 导出到 webdriver

2024年10月24日31JustinYoung

本质上,我有一个使用请求库及其发布请求的程序。我想在调用发布请求后获取 session 的 cookie,并将它们加载到 webdriver 中。我正在考虑使用 selenium 和 chrome 二进制文件,但我对如何去做感到困惑。

到目前为止,基本上就是我所拥有的。

import requests 
url=www.storeUrl.com 
session=requests.Session() 
data={'utf8': '%E2%9C%93', 
  'auth': 'oBLLJkW+A2plgT1lUJeKXq7DdqJSniGnZhnSmpuAQOE%3D', 
  'stat': 'null', 
  'user': 'zdw7287'} 
session.cookies.clear() 
response=session.post(url,data=data) 
storeResponse=session.request('get','http://www.storeUrl.com') 
 
print storeResponse.cookies 

类 'requests.cookies.RequestsCookieJar'>Cookie _store_session=BAh7CUkiD3Nlc3Npb25faWQGOgZFRkkiJTBiYmY4MmEzNmRmMjZkMjNhZDdiODg4NWVmYWQ5Y2IzBjsAVEkiB3RqBjsARnsLSSIHcDAGOcUBGSXU gtAX3pvbmVJIghFU1QGOwBUOg1uYW5vX251bWkCGgE6DW5hbm9fZGVuaQY6DXN1Ym1pY3JvIgcoIDoLb2Zmc2V0af6wuUkiB3AxBjsARjBJIgdwMgY7AEYwSSIHY3MGOwBGMEkiB2NJiETBjsAR LjkxLjIyNi4zNkkiCWNhcnQGOwBGewdpAph7aQY6C2Nvb2tpZUkiHTEgaXRlbS0tJDM2LS0zMTY0MCwxMjY0MwY7AFRJIhBfY3NyZl90b2tlbgY7AEZJIjFxNHI4QWFUQWNWaXZmY2xIVl E1YWFSOHpNPQY7AEY%3D--eea073c1f0a4fd19163e39536e75eed04ab788f9 for www.storeUrl.com/>]>

我该如何将这个 cookie 加载到 selenium 中?任何帮助将不胜感激。

请您参考如下方法:

Selenium 内置了 add_cookie将 cookie 添加到当前 session 的方法:

In [4]: browser.add_cookie?? 
Type:        instancemethod 
String form: <bound method WebDriver.add_cookie of <selenium.webdriver.chrome.webdriver.WebDriver (session="8b6e7ab963b91b5050fa1b8ef2bd7bfa")>> 
File:        /usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py 
Definition:  browser.add_cookie(self, cookie_dict) 
Source: 
    def add_cookie(self, cookie_dict): 
        """ 
        Adds a cookie to your current session. 
 
        :Args: 
         - cookie_dict: A dictionary object, with required keys - "name" and "value"; 
            optional keys - "path", "domain", "secure", "expiry" 
 
        Usage: 
            driver.add_cookie({'name' : 'foo', 'value' : 'bar'}) 
            driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'}) 
            driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True}) 
 
        """ 
        self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict}) 

基本上,您需要将带有 cookie 的 dict 传递给 add_cookie 方法,然后 session.cookies.get_dict() 返回 dict 使用 cookie:

driver.add_cookie(session.cookies.get_dict())


SO 示例: