我使用这个代码: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()
发出一个简单的httpget请求(使用tor作为代理)。在
现在我想知道如何使用同一个cookie发出多个请求。
例如:
^{pr2}$
我知道我的函数req不支持POST(还没有),但是我已经用httplib发送了postfields,所以我想我自己可以理解这一点,但是我不知道如何使用cookies,我看到了一些示例,但是它们都是一个请求,我想在后续的请求中重用第一个登录请求的cookie,或者保存/使用cookie从一个文件(像curl一样),这会使一切变得更容易。在
我发布的代码只是为了说明我要实现的目标,我想我将使用httplib(2)作为最终的应用程序。在
更新:
在cookielib.LWPCOokieJar很好,我做了一个测试样本: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')