после долгого ломания головы с всеми хидерами, хэндлерами и опенерами наконец то сделал обычный открыватель страниц с поддержкой кукис..
import urllib2
import urllib
import cookielib
import os
class DumbProxyPasswordMgr:
def __init__(self):
self.user = self.passwd = None
def add_password(self, realm, uri, user, passwd):
self.user = user
self.passwd = passwd
def find_user_password(self, realm, authuri):
return self.user, self.passwd
def download(url, file_name,cookieFile='cookie.txt',proxy_addres=None,proxy_user=None,proxy_pass=None):
cj = cookielib.LWPCookieJar() # вот, ключевая строка
if os.path.isfile(cookieFile):
cj.load(cookieFile)
cookie_handler=urllib2.HTTPCookieProcessor(cj)
if url!='http://':
url='http://'+url
if proxy_addres!=None:
proxy= urllib2.ProxyHandler({“http” : "http://“+proxy_addres})
proxy_auth_handler = urllib2.ProxyBasicAuthHandler(DumbProxyPasswordMgr ())
proxy_auth_handler.add_password(None, None, proxy_user, proxy_pass)
opener = urllib2.build_opener(proxy,proxy_auth_handler,cookie_handler)
urllib2.install_opener(opener)
else:
opener = urllib2.build_opener(cookie_handler)
urllib2.install_opener(opener)
headers = { ‘User-Agent’ : ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)’,
‘Accept-Language’ : ‘en-us’,
‘Accept’ : ‘image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*’,
‘Connection’ : ‘Keep-Alive’ }
src = urllib2.urlopen(url,headers)
data = src.read()
dst = open(file_name,”wb");
dst.write(data)
cj.save(cookieFile)
Я ему под ‘cookie.txt’ запихиваю обычную куки вытянутую из темпрорари интернет файлм ИЕ , а оно мне выдает:
cookielib.LoadError: ‘cookie.txt’ does not look like a Set-Cookie3 (LWP) format file
так вот, как так переделать код, чтоб туда лезли нормальные куки, или через какой браузер вытянуть эти LWP куки,?