首页 > 解决方案 > 无法使用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=&amp;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&#32;single-line&#32;textMedium" data-val="true" data-val-required="&#1058;&#1088;&#1077;&#1073;&#1091;&#1077;&#1090;&#1089;&#1103;&#32;&#1087;&#1086;&#1083;&#1077;&#32;User&#32;name." id="UserName" name="UserName" type="text" value="" />
                      </fieldset>
                      <fieldset>
                         <label for="Password">Password</label>
                         <input class="text-box&#32;single-line&#32;textMedium" data-val="true" data-val-required="&#1058;&#1088;&#1077;&#1073;&#1091;&#1077;&#1090;&#1089;&#1103;&#32;&#1087;&#1086;&#1083;&#1077;&#32;Password." id="Password" name="Password" type="password" />
                      </fieldset>
                      <fieldset>
                         <span class="checkbox-and-label">
                         <input data-val="true" data-val-required="&#1058;&#1088;&#1077;&#1073;&#1091;&#1077;&#1090;&#1089;&#1103;&#32;&#1087;&#1086;&#1083;&#1077;&#32;Remember&#32;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()

标签: https

解决方案


推荐阅读