Как войти на сайт с помощью python

Возможный дубликат:
Как «войти» на веб-сайт с помощью модуля запросов Python?

Я программирую приложение на python 3.2.3 и не знаю, как войти на сайт. Мне нужно войти в систему... и сохранить куки (я думаю), но все, что я пробовал, не работает.

Я попробовал Запросы, но не повезло. Моя веб-страница работает на локальном хосте (это просто форма входа).

FORM:
    <form method="post" action="">
            <input type="text" name="uname" placeholder="Uporabnisko ime:"/>
            <input type="password" name="password" placeholder="Geslo:"/>
            <input type="submit" value="Send"/>
    </form>

Питон:

import requests
payload = {'uname': 'name', 'password': 'pswd123'}
r = requests.post('http://localhost/python', data=payload)

Это ничего не делает. Как опубликовать имя и имя пользователя .. Спасибо за ответ.


person What    schedule 12.01.2013    source источник
comment
Можете ли вы рассказать об ошибках, с которыми вы сталкиваетесь? Поскольку вы используете веб-сайт на локальном хосте, я бы посоветовал найти способ получить отладочную информацию с сервера.   -  person TimD    schedule 13.01.2013
comment
Если я войду в систему, мой скрипт SQL сохранит что-то в базе данных... и там я вижу, что мой скрипт python не работает для входа в систему. Если я размещаю свой сайт в Интернете, это то же самое. Так что я думаю, что это не проблема на локальном хосте. Я не очень хорошо понимаю этот словарь, правильный ли идентификатор ключа из HTML-формы? И... каков результат request.post()? Как посмотреть, успешно ли я вошел в систему?   -  person What    schedule 13.01.2013


Ответы (1)


Чтобы указать запросам Python «сохранять файлы cookie в сеансе входа», используйте requests.session:

import requests
session = requests.session()
payload = {'uname': 'name', 'password': 'pswd123'}
r = session.post('http://localhost/python', data=payload)
r = session.get('http://localhost/authenticated/resource')
#   ^^^^^^^
person SingleNegationElimination    schedule 12.01.2013
comment
Как посмотреть, успешно ли я вошел в систему и моя сессия сохранена? - person What; 13.01.2013
comment
вы можете проверить возвращаемое значение session.post, как и любой другой запрос, чтобы увидеть, каков был статус ответа или содержание, или если вы перенаправили неожиданным образом. - person SingleNegationElimination; 14.01.2013
comment
я успешно вошел в систему ... но затем моя сессия исчезла .. Я могу получить зарегистрированный исходный код, но если я что-то сделаю, моя сессия исчезнет. - person What; 15.01.2013
comment
Я думаю, что это должно быть session = requests.session() (т.е. вызов функции)? - person Roberto; 02.12.2018