【问题标题】:Python Selenium add_cookie from txt file来自 txt 文件的 Python Selenium add_cookie
【发布时间】:2018-11-02 06:39:24
【问题描述】:

我目前在我的 python 脚本中使用 selenium。根据下面的代码,我正在向我的驱动程序添加 cookie,但是,我已经将很多 cookie 加载到一个名为 cookies.txt 的 txt 文件中(见下文),我还想添加它。我正在寻找一种方法,以便我可以创建类似:driver.add_cookie(cookies from text file)。任何帮助表示赞赏!

当前 add_cookies 代码:

driver.add_cookie({"name": "__ibxl", "value": "1"})

cookies.txt 的样子:

[
{
    "domain": ".nike.com",
    "expirationDate": 1552017842,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__ibxl",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "1",
},
{
    "domain": ".nike.com",
    "expirationDate": 1558353842,
    "hostOnly": false,
    "httpOnly": false,
    "name": "__ibxu",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "1",
    "id": 2
}
]

【问题讨论】:

  • cookies.txt中是这个json格式吗?
  • 是的,它是 json 格式

标签: python python-3.x selenium scripting


【解决方案1】:

您可以使用 json 模块来解析您的文件。

这样的事情应该可以工作:

import json
with open("cookies.txt") as cookie_file:
    cookies = json.load(cookie_file.read())
for cookie in cookies:
    driver.add_cookie(cookie)

此外,在添加 cookie 之前,您应该位于具有相似域的页面,这一点也很重要。 (driver.get('nike.com') 在你的情况下)

【讨论】:

    【解决方案2】:

    您可以使用cookie.py 代替cookie.txt 并将其导入到您的主程序文件中。

    cookie.py

    cookies = [ { "domain":"xxx" }, {"domain":"yyy"} ]
    

    main.py

    from cookies import cookies
    driver.add_cookie(cookies[0])
    

    这比手动解析文件或打开文件并使用它要简单得多。

    【讨论】:

    • 这似乎有效,除了在 cookies.py 中我的一个 cookie 是 "hostOnly": false 并且它给了我错误“名称'false'未定义”。有什么办法吗?
    • 我建议您在 cookies.py 中双引号 false,因为 false 不是有效的 python 语句,False 是,但它会是布尔数据类型,我不会不认为你需要它的布尔类型。
    • @AngusTimoney 关注infernion's solution
    猜你喜欢
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2020-08-08
    • 2021-09-18
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多