Проблема с запросами Почта, не могу войти - PullRequest
1 голос
/ 15 марта 2020

В настоящее время я использую библиотеку запросов для Python 3.7, чтобы попытаться войти на следующую страницу , следуя инструкциям, предоставленным Джулианом здесь .

Здесь это то, что я делаю:

loginSession = requests.Session()    
url = 'https://portal.projectworx.net/STS/Home/GetTenant'
payload = {'UserName': login, 'Password': password}
user_agent = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
login_request = loginSession.post(url, payload, headers=user_agent)

if(login_request.status_code == 200):
    print ("Successful log-in !")
    file = open("login_response.html", "w")
    file.write(login_request.text)
    file.close()

    # Connect to dashboard
    url = 'https://portal.projectworx.net/ProjectWorx/Dashboard/Home'
    dashboard_request = loginSession.get(url)
    file = open("dashboard_request.html", "w")
    file.write(dashboard_request.text) 
    file.close()

Хотя я теоретически добился установления соединения (код возврата 200), оба конца - «login_request. html» и «dashboard_request. html», содержащие начальные страница входа.

Примечание: Отличие, которое я обнаружил между примером Джулиана и моим, заключается в том, что я не могу найти входные имена для "user" и "password" при проверке страницы входа HTML код. Вместо этого я обнаружил следующее:

<input id="TenantId" name="TenantId" type="hidden" value="">

Не уверен, как передать правильные входные параметры в «Post» с помощью этого типа формы.

Редактировать 1:

После использования метода Пита для отслеживания запросов на вкладке Сеть и использования правильных входных данных (имя пользователя и пароль) я получил следующее содержимое в login_response. html (созданное из "login_request". text ")

Screenshot of login_request.html

Что выглядит намного лучше, чем раньше, учитывая, что оно отражает то, что получает браузер. Но попытка войти в Dashboard все равно возвращает страницу входа. «LoginSession.cookies» остается пустым после запроса на вход в систему, не уверен, насколько это нормально.

Редактировать 2:

На стороне браузера, глядя на traffi c после входа в систему на вкладке Network я наблюдаю следующее:

Network traffic

Первая пара строк, связанных с входом, содержит следующее cook ie в заголовке запроса:

_ga=****; _gac_****

А затем (например, для выделенной строки) встраивается следующий cook ie: FedAuth = ******; _ga = ****; га c****; .ASPXAUTH = ********

Но из-за того, что я не могу поймать куки, я не знаю, что делать с этой информацией ..

Дальнейшая помощь был бы очень признателен! Заранее спасибо. :)

1 Ответ

1 голос
/ 15 марта 2020

Вам необходимо использовать инструмент веб-разработчика, чтобы перепроектировать процесс входа в систему для этого конкретного сайта. Вам, вероятно, не нужно беспокоиться о маршрутизации в HTML, скорее скопируйте запрос POST, сделанный браузером. В Chrome и Firefox вы можете нажать F12 и выбрать вкладку «Сеть», затем войти в систему и наблюдать, что отправляется на сервер.

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

URL-адрес, на который нужно отправить POST, фактически https://portal.projectworx.net/STS/Home/GetTenant, а не https://portal.projectworx.net/STS/Home/Login

Данные формы (полезная нагрузка), которые вы отправляете, также должны быть {'UserName': логин, 'Пароль': пароль}, а не то, что вы используете.

Прикрепленное изображение показывает, что я смотрю в Chrome Инструменты разработчика, вкладка Сеть. Этот POST был запущен после нажатия кнопки «Вход» с именем пользователя теста и паролем ввода теста в соответствующие поля ввода.

enter image description here

...