在Python请求中使用Chrome的cookie

在Python请求中使用Chrome的cookie,python,google-chrome,cookies,python-requests,steam,Python,Google Chrome,Cookies,Python Requests,Steam,我正在尝试使用Chrome会话中获得的cookies登录网站 一旦我抓取了cookie表的所有数据,使用命令SELECT*FROM cookie WHERE host_key(如“%steam%”)和列名:PRAGMA table_infocookie并通过列表理解对所有数据进行排序,我不知道如何将其全部传递给请求,以便cookie变得可用 请求说您需要传入一个dict,即cookies={'cookies':'are_working'},但是一些密钥名称会相互覆盖,因为其中一些名称是:Stea

我正在尝试使用Chrome会话中获得的cookies登录网站

一旦我抓取了cookie表的所有数据,使用命令SELECT*FROM cookie WHERE host_key(如“%steam%”)和列名:PRAGMA table_infocookie并通过列表理解对所有数据进行排序,我不知道如何将其全部传递给请求,以便cookie变得可用

请求说您需要传入一个dict,即cookies={'cookies':'are_working'},但是一些密钥名称会相互覆盖,因为其中一些名称是:Steam_Language,尽管它们是不同的主机

编辑:刚刚找到可能对我有帮助的,但我不知道如何格式化cookielib的Chrome Cookie


我的问题是:如何将几个不同站点的cookie传递给请求?

请记住,您正在尝试执行HTTP规范有意阻止您执行的操作,即将cookie发送到它们不来自的域。所以你可能从一开始就注定了。更糟糕的是,我粗略地看了一下你的登录方式,你的工作已经完成了

回到你的问题上来

现在,假设您的蒸汽驱动会话cookie是有效的,而这些cookie可能不是基于登录页面执行的加密、密钥共享和验证码方法,那么您可以通过提供一个有效的cookie dict作为docs状态来登录requests库

my_cookies = {'cookiename1': 'cookievalue1', 'cookiename2': 'cookievalue2'}
response = requests.get(
    'http://www.steampowered.com/mystuff',
    cookies=my_cookies)
此外,我不知道您从中获取Cookie的数据库中存储了哪些数据,但请记住,它们可能存储了“Set Cookie”标头过期、路径、域等附带的所有元数据。这是用户代理Chrome的信息,即请求库,etc用于确定在请求中发送哪些cookie,但请求中不包括这些cookie。“Cookie”头只有名称=值对。所以,这就是你需要在你的曲奇字典中提供的全部内容

如果你有两个同名的饼干,就选一个吧。因为最后,很可能只对其中一个进行评估,否则服务器只会返回一个错误。

请求的示例用法:

import requests
import browser_cookie
cj = browser_cookie.firefox()
r = requests.get(url, cookies=cj)

为什么在一次只向一个域发出请求时向所有域传递cookie?我认为,大约有4种不同的cookie需要传递到该站点,我不确定如何在请求中传递它们。pypi条目是browsercookie,并且似乎只有在编写2017-03时才是python2x。