gpt4 book ai didi

python 将 cookie 传递给 header 问题

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:59 25 4
gpt4 key购买 nike

我需要的是从第一个网站提取 uid cookie 并用它打开第二个(这是一种授权)

它不适用于此代码:

#!/usr/bin/env python
import urllib, urllib2, cookielib
import socket, Cookie
def extract(url):
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.addheaders = [('User-agent',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20110201 Firefox/2.0.0.14')]

response = opener.open(url)
for cookie in jar:
precious_value = cookie.value
return precious_value

site1 = "mysite1.com"
site2 = "mysite2.com"

cp = urllib2.HTTPCookieProcessor()
cj = cp.cookiejar
cj.set_cookie(cookielib.Cookie(0, cookie_name,
extract(site1),
'80', False, 'domain', True, False, '/path',
True, False, None, False, None, None, None))
opener = urllib2.build_opener(urllib2.HTTPHandler(),cp)
opener.addheaders.append(('User-agent', 'Mozilla/5.0 (compatible)'))
print opener.open(site2).read()

也不是这样:

#!/usr/bin/env python
import urllib, urllib2, cookielib
def extract(url):
jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.addheaders = [('User-agent',
'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20110201 Firefox/2.0.0.14')]

response = opener.open(url)
for cookie in jar:
precious_value = cookie
return precious_value

site1 = "mysite1.com"
site1 = "mysite2.com"

jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.addheaders = [('User-Agent','Mozilla/5.0 (Windows; U; Windows NT 5.1;
en-GB; rv:1.8.1.14) Gecko/20110201 Firefox/2.0.0.14')]

opener.addheaders = [('Cookies', extract(site1))]
response = opener.open(site2)
print response.read()

但是我在这里成功地使用了'requests'库代码看起来不错:

cookies= dict(mycid='9ti6cACUi6AqxXBG2H9AMPkrfRbBJPalKTAh_bLcuQ8c8C')
r = requests.get(url, cookies = cookies)
print r.text

这对我来说很好,我没有反对请求的任何东西......但是我在第一次尝试的两次尝试中仍然做错了什么?在这两种情况下,提取程序都工作正常,我看到 uid 已被正确提取。我想问题出在 add_headers 区域。答案很明显,但仍然可以通过。有人可以帮忙吗?

1) 仅使用 urllib 或 urllib2 将 cookie 传递到 header 的正确方法是什么?

2) 如何将它作为可以更改的参数传递,而不仅仅是对提取对象的引用?

3)我应该如何正确地将它作为对象名称/值传递?

提前致谢

最佳答案

你的循环 def extract(url): 有两个问题:

  1. 它总是返回最后一个值,不一定是你 cookie 所在的位置
  2. 它会假设你不知道的cookie存储顺序

(我假设 precious_value 是在其他地方定义的,否则这段代码不起作用)

要知道您应该使用哪个 key 来检索您感兴趣的特定 cookie,您可以使用 chrome 开发人员工具来查看您想要的网站设置的 cookie 的名称。

希望这对您有所帮助。

关于python 将 cookie 传递给 header 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com