Форум сайта python.su
Я новичок в python но скрипт необходимо поправить.
Есть код, до вчерашнего дня работал, но 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
Отредактировано NBK (Июнь 20, 2016 01:10:30)
Офлайн
По всей видимости Ваш post запрос бъется о стену.
Apache Вам любезно оставил табличку, 302 контента временно нет, и указывает ссылку куда пойти.
Это как бы нормально.
# curl -i https://login.vk.com/ HTTP/1.1 302 Found Server: Apache Date: Mon, 20 Jun 2016 14:37:45 GMT Content-Type: text/html; charset=windows-1251 Content-Length: 0 Connection: keep-alive X-Powered-By: PHP/3.24294 Set-Cookie: remixlang=0; expires=Sat, 24 Jun 2017 20:59:32 GMT; path=/; domain=.vk.com Pragma: no-cache Cache-control: no-store P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT" Location: http://vk.com/login.php?act=slogin&role=fast&no_redirect=1&to=&s=0
NBKОсвойте curl,firebug и увидите, что там нет аж 3 редиректов.
Покопав тему увидел что там используется аж 3 редиректа 302
Отредактировано papuas (Июнь 20, 2016 18:10:53)
Офлайн
Освойте curl,firebug и увидите, что там нет аж 3 редиректов.Да, я не совсем правильно сказал
Офлайн