https - 无法使用python登录网站
问题描述
帮我登录页面。
我是 python 新手
通过提琴手解析页面后,我可以将屏幕截图发送给提琴手
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>User name / Password Sign In</title>
<script src="/idsrv/Scripts/External/jquery-1.9.1.min.js" type="text/javascript"> </script>
<script src="/idsrv/Scripts/application.js" type="text/javascript"> </script>
<script src="/idsrv/Scripts/External/jquery.validate.min.js" type="text/javascript"> </script>
<script src="/idsrv/Scripts/External/jquery.validate.unobtrusive.min.js" type="text/javascript"> </script>
<script src="/idsrv/Scripts/External/jquery-ui-1.10.1.min.js" type="text/javascript"> </script>
<link href="/idsrv/Content/Site.css" rel="stylesheet" type="text/css" />
<link href="/idsrv/Content/SignIn.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="layout-content">
<div id="header">
<div id="branding">
<div id="site">
<a href="/idsrv/">IdentityManager</a>
</div>
</div>
</div>
<div id="layout-login">
<h1 id="page-title">
Username / Password Sign In
</h1>
<div id="content">
<form action="/idsrv/dcuser/auth/signin?Area=&ReturnUrl=%252Fidsrv%252Fdcuser%252Fauth%252Fprotocols%252Fwsfederation%253Fwa%253Dwsignin1.0%2526wtrealm%253Dhttps%25253a%25252f%25252fdc.amra-bank.com%25253a10443%25252fdc%25252f%2526wctx%253Drm%25253d0%252526id%25253dpassive%252526ru%25253d%2525252fdc%2525252f%2526wct%253D2021-05-24T12%25253a39%25253a13Z%2526wreply%253Dhttps%25253a%25252f%25252fdc.amra-bank.com%25253a10443%25252fdc%25252f" method="post">
<div class="validation-summary-valid" data-valmsg-summary="true">
<ul>
<li style="display:none"></li>
</ul>
</div>
<fieldset>
<label for="UserName">User name</label>
<input class="text-box single-line textMedium" data-val="true" data-val-required="Требуется поле User name." id="UserName" name="UserName" type="text" value="" />
</fieldset>
<fieldset>
<label for="Password">Password</label>
<input class="text-box single-line textMedium" data-val="true" data-val-required="Требуется поле Password." id="Password" name="Password" type="password" />
</fieldset>
<fieldset>
<span class="checkbox-and-label">
<input data-val="true" data-val-required="Требуется поле Remember me?." id="EnableSSO" name="EnableSSO" type="checkbox" value="true" /><input name="EnableSSO" type="hidden" value="false" />
<label class="forcheckbox" for="EnableSSO">Remember me?</label>
</span>
</fieldset>
<div class="edit-item-secondary">
<div class="edit-item-sidebar group">
<fieldset class="save-button">
<button class="primaryAction" type="submit" name="submit.Save" value="submit.Signin">
Sign in</button>
</fieldset>
</div>
</div>
</form>
</div>
</div>
</div>
<div id="footer">
<div id="idm-version">Identity Manager. Copyright © eKassir 2013. Version: 0.6.20.2002. </div>
</div>
</body>
<script type="text/javascript">
$(function () {
$("#UserName").focus();
});
</script>
</html>
应用程序.js
$(function () {
$(".chzn-select").chosen({ no_results_text: "No results matched", allow_single_deselect: true });
//$(".im-list-editor").imListEditor();
$(".config-editor .message").slideDown().delay(5000).slideUp();
$("button.base64").click(function () {
var self = $(this);
var url = cryptoRandomUrl;
var target = self.data("base64target");
$.ajax({
url: url,
success: function (result) {
$("#" + target).val(result);
}
});
});
});
这是我的代码
import requests;
from lxml import html;
USERNAME = "xxx"
PASSWORD = "xxx"
LOGIN_URL = "https://xxx:10443/dc/"
URL = "https://xxx:10443/dc/Payments/Search"
def main():
session_requests = requests.session()
# Get login csrf token
result = session_requests.get(LOGIN_URL, verify=False)
print(result.content)
tree = html.fromstring(result.text)
#authenticity_token = list(set(tree.xpath("//input[@name='wresult']/@value")))[0]
# Create payload
payload = {
"UserName": USERNAME,
"Password": PASSWORD#,
#"wresult": authenticity_token
}
# Perform login
result = session_requests.post(LOGIN_URL, data=payload, headers=dict(referer=LOGIN_URL))
# Scrape url
result = session_requests.get(URL, headers=dict(referer=URL), verify=False)
tree = html.fromstring(result.content)
bucket_names = tree.xpath("//div[@class='dataTables_info']")
#print(result.content)
if __name__ == '__main__':
main()
解决方案
推荐阅读
- python - Graylog (graypy) + Docker
- python - 如何在 python 中生成指定范围内的合成数据?
- mongodb - 更新 MongoDB 中数组中的嵌套对象
- python - 在 werkzeug/flask 中重用请求正文/数据
- python - 将整数转换为日期时间对象
- python - 有没有办法使用 Python requests.delete 方法进行空运行?
- java - 致命异常:io.reactivex.exceptions.UndeliverableException java.lang.Throwable: UNAUTHORIZED / TOKEN_EXPIRED
- c++ - 如果 std::optional 的 bool 转换运算符是显式的,为什么我们可以使用 optional 作为 if 语句的条件?
- django - 如何使用 Django 模拟 POST 到 URL
- openfst - OpenFST - 从单词列表中创建 FST