2015-09-03 2 views
-2

я не могу войти на эту страницу с Python ..Невозможно войти на страницу безопасности с Python

https://oauth.norgesgruppen.no/login 

Я попытался запросы, httplib2, URLLIB и механизировать, но либо я получаю ответ 405 или 500 , «Метод запроса« POST »не поддерживается».

Я попытался, как это с запросами:

import requests 
login = "user" 
pwd = "pas" 
data = {'username':login, 'password':pwd} 
s = requests.Session() 
url = 'https://oauth.norgesgruppen.no/login' 
r1=s.post(url, data=data) 

И с Mechanize I попробовал так:

br=mechanize.Browser() 
br.open('https://oauth.norgesgruppen.no/login.jsp') 
br.select_form(nr=0) 
br['j_username'] = 'user' 
br['j_password'] = 'pas' 
br.submit() 

Есть ли что-то особенное об этой странице и форме?

+1

Как вы пробовали, вы можете показать некоторые код? –

+0

Удались ли вы на других страницах? –

+0

Да, у меня есть. Так что-то с этой страницей – EspenG

ответ

1

Эта форма содержит одно скрытое поле ввода, таким образом, вы должны добавить его в словарь данных:

данных = { "j_username": пользователь, "j_password": PWD "response_type код": ""}

Примечание: имя пользователя и пароль также не называются именем пользователя и паролем.

+0

Возможно ли «войти»: «Logg inn «Нужно ли и тогда? – piezol

+1

Да, это так! Я сделал одну страницу, которая требовала этого. Но в целом это не обязательно. И, если это необходимо, поля отправки публикуются как имя без значения. Значение для входного тега с типом submit просто отображается как метка на странице. Итак, {..., "login": ""} – Dalen

+0

Когда я это пробовал, я все равно получаю сообщение: метод запроса «POST» не поддерживается .. – EspenG

0

Посмотрите на действия в HTML:

<form id="loginForm" name="loginForm" action="/login.do" method="post"> 

Таким образом, ваш URL должен быть:

url = 'https://oauth.norgesgruppen.no/login.do' 

Всего код:

import requests 
login = "user" 
pwd = "pas" 
data = {"j_username": user, "j_password": pwd, "response_type": "code", 'submit-button': ""} 
s = requests.Session() 
url = 'https://oauth.norgesgruppen.no/login.do' 
r1=s.post(url, data=data) 
print(r1.__dict__) 
+0

Измените свой код так, чтобы он правильно назвал поля. – Dalen

+0

Да, забыл об этом. – piezol

+0

Теперь я не получаю ошибку, но все же я не могу войти. Я остаюсь на том же URL-адресе. – EspenG

Смежные вопросы