Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 24, 2012 09:32:34

kappa-sama
Зарегистрирован: 2012-09-21
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на форуме

Есть питон 3.2
Есть форум - http://slitherin.potterforum.ru/
Задача: авторизироваться и получить страницы по некоторым ссылкам.

Проблема в том что норм инфы на русском я не нашел, кроме очень общей. Все примеры на втором питоне. С буржуйским плохо, поэтому англоязычные ресурсы помощи не оказали. Кто может подкинуть инфу или (желательно) пример?

Офлайн

#2 Окт. 24, 2012 11:24:49

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Авторизация на форуме

1. Берете fiddler, смотрите какие запросы отправляет браузер.
2. С помощью requests отправляете такие же запросы.
3. При необходимости парсинга полученных страниц, используете, например, lxml

Это в общих чертах. Что конкретно вам непонятно?



Офлайн

#3 Окт. 24, 2012 15:53:51

kappa-sama
Зарегистрирован: 2012-09-21
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на форуме

Интересует именно отправка ПОСТ запроса и “отлов” сессии.

Офлайн

#4 Окт. 24, 2012 17:22:40

GaiveR
От:
Зарегистрирован: 2011-08-13
Сообщения: 122
Репутация: +  16  -
Профиль   Отправить e-mail  

Авторизация на форуме

Не проверял, но как-то так:

import requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
# сохраняем куки для последующих запросов
cookies = r.cookies
# отправляем запрос с сохраненными ранее куками
requests.get('http://httpbin.org/cookies', cookies=cookies)

Вообще смотрите оф доки, там все есть. Если проблемы с английским - учите его, без него прогать будет очень тяжело. Ну а пока не выучили, можно прибегнуть к помощи гуглопереводчика, например.



Отредактировано GaiveR (Окт. 24, 2012 17:23:20)

Офлайн

#5 Окт. 24, 2012 21:53:48

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Авторизация на форуме

GaiveR
cookies = r.cookies
Но зачем?
s = requests.session()
s.post(...)

import requests
s = requests.session()
r = s.post("http://httpbin.org/post", data={
    'key1': 'value1', 
    'key2': 'value2',
})
# отправляем запрос с сохраненными ранее куками
s.get('http://httpbin.org/cookies')

Отредактировано odnochlen (Окт. 25, 2012 04:32:05)

Офлайн

#6 Окт. 27, 2012 06:31:31

kappa-sama
Зарегистрирован: 2012-09-21
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на форуме

Спасибо, а как можно проверить активна ли еще сессия? Или она активна пока сам не закроешь?

Отредактировано kappa-sama (Окт. 27, 2012 06:35:32)

Офлайн

#7 Окт. 27, 2012 09:17:59

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Авторизация на форуме

session - всего лишь хранилище кук и настроек. На валидность можно проверить только узнав, принял ли сайт куки.

Отредактировано odnochlen (Окт. 27, 2012 09:20:03)

Офлайн

#8 Окт. 28, 2012 03:20:58

kappa-sama
Зарегистрирован: 2012-09-21
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Авторизация на форуме

Есть специальный ответ сервера на это? Или надо получить какую либо страницу и на основе этого делать выводы?

Офлайн

#9 Окт. 28, 2012 03:33:43

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Авторизация на форуме

Так же, как и браузером - смотреть, есть ли строки, появляющиеся после логина - вроде “Вы зашли как %s”.

Иногда после успешного логина появляются какие-то куки или идет редирект на определенную страницу.

Отредактировано odnochlen (Окт. 28, 2012 03:34:22)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version