Я попытался прочитать более 10 вопросов здесь о переполнении стека на эту тему, так что извините, если это было сказано ранее. Я почти никогда не задаю вопросы, потому что я всегда чувствую, что мой ответ где-то здесь, и все, что мне нужно сделать, это найти его, но я должен признать, что я в растерянности.
Я ищу автоматизировать загрузку нескольких отчетов с указанного веб-сайта c (http://ecargo.mercosulline.com.br/) после навигации по нему с помощью модуля Python запросов. Тем не менее, я не могу пройти через экран входа в систему .. ха-ха
Если попробовал много разных фрагментов кода, но я вставлю то, что я "наиболее уверен" ниже:
with requests.Session() as s:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0'}
payload = {
#'txt_nome':'username',
#'txt_senha':'password'
'usuario':'username',
'senha':'password'
}
url = 'http://ecargo.mercosulline.com.br/SERVICOS/WSMontarMenu.Service.svc/rest/ChecarUsuario'
#url = 'http://ecargo.mercosulline.com.br/NovoIndex.asp'
#r = s.get(url)
#print(r.content)
r = s.post(url, data=payload, headers=headers)
print(r.text)
После проверки страницы при входе в систему я вижу, что мой браузер отправляет 2 запроса POST:
1-й. http://ecargo.mercosulline.com.br/SERVICOS/WSMontarMenu.Service.svc/rest/ChecarUsuario с «usuario» в качестве имени поля для имени пользователя и «senha» в качестве имени поля для пароля.
2nd. http://ecargo.mercosulline.com.br/NovoIndex.asp там он использует имена форм веб-страницы (txt_nome и txt_senha), как это видно из фрагмента html ниже:
<form name="frmLogin">
<br/>
<div class="form-group">
<input class="form-control" placeholder="Usuário" name="txt_nome" type="text" value="{{viewModel.usuario}}" autofocus ng-model="viewModel.usuario">
</div>
<br/>
<div class="form-group">
<input class="form-control" placeholder="Senha" name="txt_senha" type="password" value="{{viewModel.senha}}" ng-model="viewModel.senha">
</div>
<br/>
<button class="btn btn-lg btn-success btn-block" type="submit" ng-click="viewModel.logar()">Entrar</button>
<br/>
</form>
Если я отправлю данные в первом URL-адресе, они вообще не работают - просто выдает ошибку и говорит: «проверьте журнал сервера для получения более подробной информации». Если я публикую данные во втором URL-адресе и распечатаю их содержимое, это просто возвращает меня к страница входа.
Кажется, эта страница была создана с AngularJS, поэтому я не уверен, что модуль запросов - правильный? Кто-нибудь, пожалуйста, помогите мне?