import cookielib,urllib2 class AddCookieHandler(urllib2.BaseHandler): def __init__(self,cookieValue): self.cookieValue = cookieValue def http_request(self, req): if not req.has_header('Cookie'): req.add_unredirected_header('Cookie', self.cookieValue) else: cookie = req.get_header('Cookie') req.add_unredirected_header('Cookie', self.cookieValue + '; ' + cookie) return req
有时候仅仅使用python自带的cookielib不能满足我们的需求,这个时候我们就需要增加自定义的cookies了。网上找到相关文章,加以改进之后如上面所示,调用的时候可以如下。
cj = cookielib.CookieJar() cookieProc = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookieProc, AddCookieHandler(sc)) urllib2.install_opener(opener)
如上面所示,其中的sc就是标准的cookies字符串,形如:"name=hehe;pass=gaoshangda"