HTTPS-запрос Python

Я пытаюсь войти на веб-сайт, но у меня возникают проблемы с этим. Я читал различные решения, но где я борюсь, как узнать форму данных для входа?

Например, в этом решении:

def main():
# Start a session so we can have persistant cookies
session = requests.session()
# This is the form data that the page sends when logging in
login_data = {
    'Name': Name,
    'Password': Password,
    'Log In': 'Log In'
}
# Authenticate
r = session.post(URL, data=login_data)

Откуда вы знаете, что данные для входа в эту форму? Буду признателен за помощь в поиске информации о классе request.session и о том, как/что он делает с login_data.

Каждое решение, которое я пробовал, просто отображает источник веб-страницы, говоря, что мне нужно войти в систему, чтобы получить к ней доступ.

Дайте мне знать, если что-то было неясно

ВАШЕ ЗДОРОВЬЕ


person dannykim    schedule 20.06.2013    source источник
comment
Во-первых: по большей части документация сеанса только расскажет вам, чем session.post отличается от requests.post, и ожидается, что вы просмотрите документацию requests.post, чтобы выяснить все остальное.   -  person abarnert    schedule 21.06.2013
comment
Между тем: способ узнать, какую форму ожидает веб-сайт, — это прочитать документацию на этом веб-сайте. Если документации нет, нужно экспериментировать — использовать интерфейс браузера или официальный клиент или что там у них есть и смотреть, что оно отправляет. К какому сайту вы пытаетесь подключиться? Есть ли у них опубликованный веб-API? Как вы узнали, что нужно отправлять параметры с этими тремя именами?   -  person abarnert    schedule 21.06.2013
comment
@abarnert спасибо. да, я сейчас смотрю документацию. Сайт, к которому я пытаюсь получить доступ, используется только внутри моей компании. У них нет опубликованного веб-API. Что касается параметров отправки, то они просто заполнители. Как я буду смотреть, что он отправляет?   -  person dannykim    schedule 21.06.2013
comment
Большинство веб-браузеров в настоящее время имеют меню или подменю «Разработка» или с аналогичным названием, либо встроенное, либо одно из 10 лучших дополнений, которое открывает панель, где вы можете делать такие вещи, как запись всех запросов. (Если вы не можете понять это, вы всегда можете настроить простой прокси-сервер между браузером и сервером, но в настоящее время обычно проще делать это из браузера.)   -  person abarnert    schedule 22.06.2013
comment
Между тем, если это внутрикорпоративный сайт… нельзя ли просто спросить у тех, кто его поддерживает?   -  person abarnert    schedule 22.06.2013


Ответы (1)


Я настоятельно рекомендую вам использовать механизм при работе с формами в Интернете. Вам просто нужно создать объект Browser() и начать навигацию по сайту, иногда вам нужно включить файл cookie для обработки файлов cookie.

Что касается информации об именах полей формы, я рекомендую просмотреть исходный код HTML-страницы, на которую вы пытаетесь войти. Вы также можете использовать mechanize для перебора всех форм на сайте и вывода значения каждого поля.

Здесь у вас есть пример того, как работать с формами в mechanize.

Удача !

person PepperoniPizza    schedule 20.06.2013
comment
Проблема, с которой я сталкиваюсь, заключается в том, что страница входа в систему является всплывающим окном, поэтому браузер не позволяет мне просматривать исходный код html. - person dannykim; 21.06.2013