rob*_*ert 11 python cookies selenium
我想知道从 selenium webdriver 实例(chromedriver)获取 cookie 的最佳方法,并将它们转换为可以作为 http 标头传递的 cookie 字符串。这是我尝试过的方法:获取 selenium 提供的每个 cookie 的字典列表,然后手动添加等号和分号以将其格式化,就像在 Cookie 标头中一样。问题是:这不起作用,在我正在测试的网站上它返回 500 内部服务器错误,我认为这是由 a. 对请求的处理不当,以及 b.一个错误的请求,特别是 cookie 部分。
cookies_list = driver.get_cookies()
cookieString = ""
for cookie in cookies_list[:-1]:
cookieString = cookieString + cookie["name"] + "="+cookie["value"]+"; "
cookieString = cookieString + cookies_list[-1]["name"] + "="+ cookies_list[-1]["value"]
print(cookieString)
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法可以做到这一点和/或我格式化不起作用的 cookie 字符串有什么问题。
真诚地感谢您的任何帮助。
Lib*_*mas 18
all_cookies=self.driver.get_cookies();
cookies_dict = {}
for cookie in all_cookies:
cookies_dict[cookie['name']] = cookie['value']
print(cookies_dict)
Run Code Online (Sandbox Code Playgroud)
您可以将它们传递给请求函数。
您可以使用pickle将当前cookie保存为python对象。例如:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
Run Code Online (Sandbox Code Playgroud)
然后将它们添加回来:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)
小智 1
使用 json 将 cookie 转储到您可以格式化的可迭代对象中:
import json
cookies_list = list(json.dumps(get_cookies))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41942 次 |
| 最近记录: |