Форум сайта python.su
Доброго времени суток.
Пробую залогиниться в ВК вот таким кодом:
from urllib import request, parse import re import http.cookiejar cookie = http.cookiejar.CookieJar() request.install_opener(request.build_opener(request.HTTPCookieProcessor(cookie))) headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0'} req0 = request.Request('http://vk.com/', None, headers) response = request.urlopen(req0) ip_h = re.findall(r'value="[a-z 0-9]{18}"', response.read().decode('cp1251'))[0] params = parse.urlencode({'act' : 'login', 'role' : 'al_frame', 'expire' : '', 'captcha_sid' : '', 'captcha_key' : '', '_origin' : 'http://vk.com/', 'ip_h' : ip_h, 'email': 'логин', 'pass': 'пароль' }) bin_params = params.encode('ascii') req = request.Request('http://vk.com/', bin_params, headers) f = request.urlopen(req) text = f.read().decode('cp1251') print(text)
<noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>
Офлайн
В 25й раз говорю - выкиньте urllib и возьмите requests или grab.
Офлайн
Авторизуйся через мобильную версию, и смотри сниффером что и как идет.
Офлайн
badbrowser же - поставьте другой User-Agent
Офлайн
Да выкиньте вы urllib, в грабе встоенный рандом пул юзер агентов. В обоих requests и grab - сессии искаропки, любые пост и гет запросы одним вызовом. Для поста передаешь словарь или список кортежей. В грабе точно так же мультипарт пост и прокси для запроса.
Отредактировано odnochlen (Ноя. 7, 2012 17:11:56)
Офлайн
odnochlenА они есть под третий Питон? Ссылку пж
requests и grab
s0rgПробовал, ничего не изменилось
поставьте другой User-Agent
Отредактировано Deuce (Ноя. 7, 2012 17:59:26)
Офлайн
requests точно есть, grab автор портировать не хочет. Собственно, это и удерживает меня от перехода на тройку.
Ссылка стандартная - pip install requests.
Ну а в остальном - смотри сниффером, что по сети ходит.
Отредактировано odnochlen (Ноя. 7, 2012 18:55:05)
Офлайн
odnochlenpip в третьем похоже не поддерживается
Ссылка стандартная - pip install requests.
import easy_install easy_install requests SyntaxError: invalid syntax
Отредактировано Deuce (Ноя. 7, 2012 22:58:43)
Офлайн
Да не в питоне, а в командной строке. Ни пипа, ни изи инсталла может не быть, тогда нужно скачать бинарник distutils.
Офлайн
я почему-то думал что с помощью изи_инсталла изотсюда, ну щас пойду искать бинарник, надеюсь в этот ра найду то что нужно
Офлайн