gpt4 book ai didi

python - 如何在 python 中的多个请求中使用相同的 cookie?

转载 作者:可可西里 更新时间:2023-11-01 17:15:32 26 4
gpt4 key购买 nike

我正在使用这段代码:

def req(url, postfields):
proxy_support = urllib2.ProxyHandler({"http" : "127.0.0.1:8118"})
opener = urllib2.build_opener(proxy_support)
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
return opener.open(url).read()

发出一个简单的 http get 请求(使用 tor 作为代理)。

现在我想知道如何使用同一个 cookie 发出多个请求。

例如:

req('http://loginpage', 'postfields')
source = req('http://pageforloggedinonly', 0)
#do stuff with source
req('http://anotherpageforloggedinonly', 'StuffFromSource')

我知道我的函数 req 还不支持 POST,但我已经使用 httplib 发送了 postfields,所以我想我可以自己弄清楚,但我不明白如何使用 cookie,我看到了一些例子但它们都只是一个请求,我想在后续请求中重用第一个登录请求中的 cookie,或者保存/使用文件中的 cookie(如 curl 所做的那样),这将使一切变得更容易。

我发布的代码只是为了说明我想要实现的目标,我想我会在最终应用程序中使用 httplib(2)。

更新:

cookielib.LWPCOkieJar 工作正常,这是我为测试做的一个示例:

import urllib2, cookielib, os

def request(url, postfields, cookie):
urlopen = urllib2.urlopen
cj = cookielib.LWPCookieJar()
Request = urllib2.Request

if os.path.isfile(cookie):
cj.load(cookie)

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
txheaders = {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}

req = Request(url, postfields, txheaders)
handle = urlopen(req)
cj.save(cookie)
return handle.read()

print request('http://google.com', None, 'cookie.txt')

最佳答案

cookielib模块是你需要做的。有一个不错的tutorial带有一些代码示例。

关于python - 如何在 python 中的多个请求中使用相同的 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3323355/

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