Есть код, до вчерашнего дня работал, но vk опять чота намудрили с авторищацией.
Покопав тему увидел что там используется аж 3 редиректа 302
1я страница заполняем форму и отсылаем
https://login.vk.com/
post = {'act': ‘login’,
‘expire’: ‘',
’_origin': 'https://vk.com',
‘email’: username,
‘pass’: password}
в ответе приходит код 302 и ссылка вида
https://vk.com/login.php?act=slogin&role=fast&redirect=1&to=&s=1&__q_hash=тутномер
важный момент считывать и обновлять куки и передавать по всем страницам которые с 302 кодом приходит.
И этот момент я не представляю как реализовать. urlib2 такого вроде не позволяет.
def __getResponse(self, data, cookies=None, headers=None): opener = urllib2.build_opener() opener.addheaders = self.getHeaders().items() if headers is not None: opener.addheaders += headers if cookies is not None: opener.addheaders += [('Cookie', cookies)] if data is not None: data = urllib.urlencode(self.encode_dict(data)) logger.info('request: ' + self.__url + ' ' + str(data)) try: response = opener.open(self.__url, data, timeout=8) except urllib2.HTTPError, e: logger.error('HTTP error:' + str(e.message)) print 'HTTP error' response = None return response def sendRequest(self, data=None, cookies=None, getCookies=False, getContent=False): response = self.__getResponse(data, cookies) if response: content = self.__readContent(response) logger.info('response: ' + content) if getCookies: if getContent: return Cookie.SimpleCookie(response.info().get('Set-Cookie')), content else: return Cookie.SimpleCookie(response.info().get('Set-Cookie')) else: return content else: logger.info('response is None!') return None