Форум сайта python.su
0
Всем спасибо! Заработало, установил с помощью PIP
Офлайн
0
Для пробы написал код авторизации на letitbit.net…
import requests url = 'http://letitbit.net' urlTo = 'http://letitbit.net/' payload = {'act':'login','login':'h1480276@rtrtr.com','password':'2DPEND9i3jvs'} headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0', 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language' : 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding' : 'gzip, deflate', 'Connection' : 'keep-alive', } headers1 = {'content-type' : 'application/json', 'Host' : 'letitbit.net', 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0', 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language' : 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding' : 'gzip, deflate', 'Connection' : 'keep-alive', 'Referer' : 'http://letitbit.net/', 'Content-Type' : 'application/x-www-form-urlencoded', } r = requests.get (url, headers=headers) b = requests.post (urlTo, allow_redirects=True, headers=headers1, data=payload) print b.status_code print b.headers print b.text print b.history #print r.content
Офлайн
173
Потому что нужно чтобы куки хранились, а для этого лучше использовать requests.Session.
Да и в headers1 у вас бред какой-то (host, content-type и connection requests и сам выставит).
import requests url = 'http://letitbit.net/' payload = {'act':'login','login':'h1480276@rtrtr.com','password':'2DPEND9i3jvs'} headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0', 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language' : 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding' : 'gzip, deflate', 'Connection' : 'keep-alive', } s = requests.Session(headers=headers) b = s.post(url, allow_redirects=True, headers={'Referer': 'http://letitbit.net/'}, data=payload) ...
Отредактировано reclosedev (Авг. 7, 2012 10:55:18)
Офлайн
0
Спасибо! Получилось. Requests куки автоматом обрабатывает?
Офлайн
0
Если мне нужно в Post запросе передать данные в формате Json? правильна ли будет такая запись?:
post = '{"name":name, "password":password, "passwordhash":"","autologin":false}'
Офлайн
173
SeganapaДа, если использовать объект Session.
Requests куки автоматом обрабатывает?
SeganapaЕсли речь конкретно о letitbit то JSON там ни к чему.
Если мне нужно в Post запросе передать данные в формате Json?
SeganapaНет, переменные в строке сами себя не заменят волшебным образом.
правильна ли будет такая запись?:
import json post = json.dumps({"name": name, "password": password, "passwordhash": "", "autologin": False})
post = '{"name":%s "password":%s, "passwordhash":"","autologin":false}' % (name, password)
Отредактировано reclosedev (Авг. 7, 2012 13:16:29)
Офлайн
0
Просто я в php привык так делать:
$post = ‘json={“name”:“’ . $name . ‘”,“password”:“’ . $password . ‘”,“passwordhash”:“”,“autologin”:false}’;
Жаль на питоне так нельзя…
Офлайн
14
SeganapaВот у меня вопрос: а это вообще валидный запрос? Я знаю только 2 типа поста: www/urlencoded и multipart.
Если мне нужно в Post запросе передать данные в формате Json? правильна ли будет такая запись?:
post = ‘{“name”:name, “password”:password, “passwordhash”:“”,“autologin”:false}’
SeganapaМожно, reclosedev показал как. Но не нужно.
Просто я в php привык так делать:
$post = ‘json={“name”:“’ . $name . ‘”,“password”:“’ . $password . ‘”,“passwordhash”:“”,“autologin”:false}’;
Жаль на питоне так нельзя…
Отредактировано odnochlen (Авг. 7, 2012 13:53:51)
Офлайн
0
odnochlen
Вот у меня вопрос: а это вообще валидный запрос? Я знаю только 2 типа поста: www/urlencoded и multipart.
import requests #import json headers = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0', 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language' : 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3', 'Accept-Encoding' : 'gzip, deflate', 'Connection' : 'keep-alive' } url = 'http://ru.grepolis.com' urlTo_start_page = 'http://ru.grepolis.com/start/index?action=login_from_start_page' urlTo_start_page_next = 'http://ru.grepolis.com/start/index?action=fetch_news' urlTo_login_to_game = 'http://ru.grepolis.com/start?action=login_to_game_world' req = requests.Session(headers=headers) onestep = req.get(url) name = 'Tartang' password = '7TXzMQvUZt3qUqh' #post = json.dumps({"name": name, "password": password, "passwordhash": "", "autologin": False}) post = 'json={"name":%s, "password":%s, "passwordhash":"","autologin":false}' % (name, password) twostep = req.post(urlTo_start_page, data=post, allow_redirects=True, headers={'Referer': 'http://ru.grepolis.com/', 'X-Requested-With' : 'XMLHttpRequest', 'Pragma' : 'no-cache', 'Cache-Control' : 'no-cache' }) print twostep.text print twostep.cookies
Офлайн
173
Тут обычный www/urlencoded, поэтому вот так должно сработать:
json_arg = json.dumps({"name": name, "password": password, "passwordhash": "", "autologin": False}) twostep = req.post(urlTo_start_page, data={"json": json_arg}...
Отредактировано reclosedev (Авг. 7, 2012 14:30:32)
Офлайн