Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 22, 2016 14:07:40

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Приветствую.

Вот совершенно не пойму, почему я не могу получить ‘remixq_*** куку’
По шагам повторяя браузер, я понял что нужно только remixsid, но вот как его получить, ума не приложу, уже 2й день бьюсь.

 UA = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0'
    with requests.Session() as s:
        s.headers['User-Agent'] = UA
        r = s.get('https://vk.com/login')
        remixlhk = r.cookies._cookies['.vk.com']['/']['remixlhk'].value
        tree = html.fromstring(r.content)
        ip_h = tree.xpath("//form[@id='login_form']/input[@name='ip_h']")[0].value
        lg_h = tree.xpath("//form[@id='login_form']/input[@name='lg_h']")[0].value
        data_set = {
            'act': 'login',
            'role': 'al_frame',
            'expire': '',
            'captcha_sid': '',
            'captcha_key': '',
            '_origin': 'https://vk.com',
            'ip_h': ip_h,
            'lg_h': lg_h,
            'email': login,
            'pass': password,
        }
        prepared_post = requests.Request('POST', "https://login.vk.com/?act=login",
                                         data=data_set,
                                         headers={
                                             'User-Agent': UA,
                                             'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
                                             'Cookie': 'remixlhk=%s; remixlang=3; remixflash=0.0.0; remixscreen_depth=24; remixdt=0' % remixlhk,
                                             'Referer': 'https://vk.com/login',
                                             'Host': 'login.vk.com',
                                             'Accept-Encoding': 'gzip, deflate, br',
                                             'Accept-Language': 'en-US,en;q=0.5',
                                             'Connection': 'keep-alive',
                                             'Upgrade-Insecure-Requests': '1'
                                         })
        prepared_post = prepared_post.prepare()
        del prepared_post.headers['Content-Length']
        del prepared_post.headers['Content-Type']
        response = s.send(prepared_post, allow_redirects=False)
        # post = s.post("https://login.vk.com/?act=login", data=data_set)
        # val_cookies = post.cookies
        print response.headers
        assert 'remixq_' in response.headers.get('Set-Cookie')
        res = s.get('https://vk.com/kaldown')
        print 'Страница доступна только авторизованным пользователям' not in res.content


Помогите плиз

Офлайн

#2 Сен. 26, 2016 19:04:51

marataziat
От: Алматы
Зарегистрирован: 2016-05-24
Сообщения: 104
Репутация: +  -5  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Чёртов извращенец! Для этого есть API!



Я настоящий тюленялюб :)

Офлайн

#3 Сен. 30, 2016 16:06:39

tibs
От:
Зарегистрирован: 2011-06-30
Сообщения: 57
Репутация: +  0  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Тоже интересует этот вопрос.
kaldown, а зачем ты удаляешь заголовки Content-Length и Content-Type? Без них возвращает ответ 411 Length Required



Офлайн

#4 Окт. 5, 2016 12:05:32

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Да вообще я сделал все через Pycurl. Фиг знает почему requests не работает.
API у вконтакта работают не правильно.
Ну или может я чего не знаю, разве используя API, можно вытащить cookie? кажется нет

Офлайн

#5 Окт. 5, 2016 12:05:33

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Да вообще я сделал все через Pycurl. Фиг знает почему requests не работает.
API у вконтакта работают не правильно.
Ну или может я чего не знаю, разве используя API, можно вытащить cookie? кажется нет

Офлайн

#6 Окт. 5, 2016 12:06:18

kaldown
Зарегистрирован: 2015-07-16
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

http авторизаци vk.com

tibs
Тоже интересует этот вопрос. kaldown, а зачем ты удаляешь заголовки Content-Length и Content-Type? Без них возвращает ответ 411 Length Required
Да черт его знает, я пробовал методом тыка по всякому.

Офлайн

#7 Окт. 15, 2016 21:37:52

Vintets
Зарегистрирован: 2016-07-05
Сообщения: 41
Репутация: +  6  -
Профиль   Отправить e-mail  

http авторизаци vk.com

Не так давно делал похожую авторизацию.
Тоже некоторое время не мог понять причину. Оказалось, что ВК после перехода на новый дизайн в первом запросе присылает два кука с одним именем remixlhk но с разным сроком действия. И в библиотеке requests с этим проблема он берёт последний. Т.е. как разбирает хедер, в таком порядке и присваивает. А правильно брать тот, у которого срок жизни дольше. Так делает браузер.
Случайно ‘это’ там забыли или специально неизвестно. Я уж было начал руками парсить куки из хедера, но нашелся более простой способ. Запрос по http присылает кук в одном экземпляре. На этом этапе htpps не обязателен.
И кстати через urllib2 такие куки обрабатываются правильно, проверил.

Отредактировано Vintets (Окт. 15, 2016 21:39:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version