我用两个不同的模块来编写代码。 我用dryscrape登录netflix,而不是用请求来做其他事情。然而,使用dryscrap我可以得到一堆饼干使用会话.cookies(),它返回了一系列cookies。所以我尝试使用请求库将这些cookie传递给请求。在
但是,我现在在做这件事时遇到了一个问题。请求需要一个cookie字典,我做了。在
下面是简化这种情况的代码。。在
这是我用dryscrap得到的cookie格式会话.cookies()
["NetflixCookies=true; domain=.netflix.com; path=/", "hcVisitorId=b0ada616-e472-4a89-9bd6-35c6adbdf48a; expires=Sat, 26-Nov-2016 07:30:55 GMT; domain=.help.netflix.com; path=/", "cL=1448609468009%7C144860945956982159%7C144860945964708782%7C%7C5%7C; domain=.www.netflix.com; path=/", "netflixHelpCenterLocale=en-US; domain=.help.netflix.com; path=/", "JSESSIONID=8641E508022EEE2E146073D62A320319; HttpOnly; domain=help.netflix.com; path=/", "memclid=b0ada616-e472-4a89-9bd6-35c6adbdf48a; expires=Sat, 26-Nov-2016 07:31:03 GMT; domain=.netflix.com; path=/"]
但是请求只需要一本字典,所以我就这么做了
^{pr2}$它对我根本不起作用,它不登录netflix,并要求我这样登录。我想这和我用正确的格式传递cookies有关!在
您有一个带有
Set-Cookie
标题结果的列表。它们包含一个键值对和一些元数据。在例如,第一个cookie头是:
它告诉浏览器你的cookie名称是
NetflixCookies
,它的值是true
,只有在联系netflix.com
域中的服务器时,才应该使用cookie,路径以/
(整个服务器)开头。在但是,当您将cookies发送回服务器时,不需要所有这些元数据。只发送键值对。因此,
^{pr2}$requests
方法的cookies
参数接受这些键值对的字典,而不是元数据。对于上面的cookie,您可以使用这个:对于其他cookie,您必须提取它们的cookie名称和值,并将这些名称用作字典中的键。在
要解析头,只需使用
cookilib.parse_ns_headers()
函数;它将返回一个列表,其中每个header包含元组对;第一个元组是您的键值对:你可以把这个结果直接放到字典里:
例如,生成特定的示例:
相关问题 更多 >
编程相关推荐