Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python请求登录ASP.NET ERP web失败_Python_Asp.net_Python Requests_Erp - Fatal编程技术网

使用python请求登录ASP.NET ERP web失败

使用python请求登录ASP.NET ERP web失败,python,asp.net,python-requests,erp,Python,Asp.net,Python Requests,Erp,我尝试登录ASP.NET ERP web,因为我很好奇如何使用python请求登录,但我觉得无法登录,这是我的代码: url=http://xxx.xxx.xxx.xxx/some_site/erp/erp_login.aspx username=1400020 password="mypassword" import requests from bs4 import BeautifulSoup headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x8

我尝试登录ASP.NET ERP web,因为我很好奇如何使用python请求登录,但我觉得无法登录,这是我的代码:

url=http://xxx.xxx.xxx.xxx/some_site/erp/erp_login.aspx
username=1400020
password="mypassword"
import requests
from bs4 import BeautifulSoup
headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'}
my_session = s.Session()
my_session.headers.update(headers)
request=my_session.get(url)
beauti=BeautifulSoup(request.content)
这是我解析的HTML

<body>
<form action="erp_login.aspx" class="form-signin" id="form1" method="post" name="form1">
<div>
<input id="__LASTFOCUS" name="__LASTFOCUS" type="hidden" value=""/>
<input id="__EVENTTARGET" name="__EVENTTARGET" type="hidden" value=""/>
<input id="__EVENTARGUMENT" name="__EVENTARGUMENT" type="hidden" value=""/>
<input id="__VIEWSTATE" name="__VIEWSTATE" type="hidden" value="/wEPDwUKMTkwNzM5ODc0MA9kFgICBQ9kFgYCAQ9kFgQCAQ9kFgQCCw8PFgIeBFRleHQFJTw8PCZuYnNwOyZuYnNwO0FEVC1TSlUmbmJzcDsmbmJzcDs+Pj5kZAINDw8WAh8ABV5GaXJlZm94Njggc3NzIEZpcmVmb3ggc3NzIE1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NDsgcnY6NjguMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC82OC4wZGQCBQ9kFgICAQ9kFgICAw8QZGQWAGQCAw8WAh4HVmlzaWJsZWhkAgkPZBYCZg9kFgICAQ9kFgJmD2QWAmYPZBYCAgEPPCsACwBkZGOx36TJfGYxlXBQnUWT0oEjFZMe"/>
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>
<script src="/ERP_NEW/WebResource.axd?d=crEqWsFELBbHh-Zn9JwJz0Wc0o-EqMgq2DsgmxYpodKngnF9_tdzROczt7Z1R6CEd_keip4sQ_LfTnxTE8U2GfD44xA1&amp;t=636284885271971599" type="text/javascript"></script>
<script src="/ERP_NEW/ScriptResource.axd?d=a9N1yt0FgpEcl5aXFKCZ2X9SgsJ2qYN-d2KopL4gMypLQPw8LAeF4BHzoYVLzNa9w6-G_V9QlCGdsqPMDC_DebsmRaiEQIqMrJjqn0vIzq34Ir3OoXxewOGM_qPRp2ObV3xImsdYJ7yxmPI7AsXF3F5H3rVupYA6HRhX6Do29jnDyops0&amp;t=3f4a792d" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>
<script src="/ERP_NEW/ScriptResource.axd?d=b0YOHYigWFb9TAiz3emuj94HuiB1DWWtIIIDoxURzZz-WQydewo8iaKcx4oOdXWAjcaAZ09X834NxWOfrEuU6SPQtOT09pExt-CrQwLiihsxN9m1SEYem4EBGYazS7IjBxszp7ZffC1LqDSmfa2fQUKVewuCkJpyFhiDMaBfS3Ygj3AI0&amp;t=3f4a792d" type="text/javascript"></script>
<script src="/ERP_NEW/WebResource.axd?d=5JgXfpUlKhMUVz_xTJYrdHEPN6Scl535G99K8bt7avOij7pxmefqvDehHDqufvH43z_-msmtYcyFp4g6-w1tv1Fi2Lk1&amp;t=636284885271971599" type="text/javascript"></script>
<div>
<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="FD7250D9"/>
<input id="__EVENTVALIDATION" name="__EVENTVALIDATION" type="hidden" value="/wEWBAL3ltW/BgLT8dy8BQK1qbSRCwKFoZPNA1abehnNI7/HTq494AZnY2PWZ6rX"/>
</div>
<div id="tblLogin">
<div class="form-control" id="tdLogin" style="padding:20px;">
<div style="width:100%; margin-bottom:20px">
<div style="display: table; margin: 0 auto;">
<a class="logo" id="A1" style="text-align:center">
<img alt="" src="../img/logo2.png"/>
</a>
</div>
</div>
<div class="input-group mb15">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<label class="sr-only" for="txtUserID">User Id</label>
<input autofocus="" class="form-control" id="txtUserID" name="txtUserID" placeholder="User Id" type="text"/>
</div>
<div class="input-group mb15">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
<label class="sr-only" for="txtPassword">Password</label>
<input autofocus="" class="form-control" id="txtPassword" name="txtPassword" placeholder="Password" type="password"/>
</div>
<input class="btn btn-primary btn-block" id="cmdLogin" name="cmdLogin" type="submit" value="Login"/>
<br/>
<p class="text-center" style="font-size:10.5px;font-weight:bold">
<span id="lblServerGroup">&lt;&lt;&gt;&gt;</span>
</p>
<p class="text-muted text-center" style="font-size:8.5px">© 2019, xxxx xxxx Group</p>
<p class="text-muted text-center" style="font-size:8.5px">
<span id="lblTest" style="color:white">Firefox68 sss Firefox sss Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0</span>
</p>
</div>
<div id="pnlFilter" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'cmdSelect')">
</div>
</div>
<div class="fdtl" id="divDialogDocList" style="display:none;">
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tup_DocList'], [], [], 90);
//]]>
</script>
<div id="up_DocList">
<table align="center" border="0" cellpadding="9" cellspacing="1" class="tbl" id="pnl_DocList">
<tr class="dtl_c">
<td>
</td>
</tr>
</table>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
WebForm_AutoFocus('txtUserID');Sys.Application.initialize();
//]]>
</script>
</form>
</body>
然后解析html,页面似乎没有改变

BeautifulSoup(request_2.content)
<body>
<form action="erp_login.aspx" class="form-signin" id="form1" method="post" name="form1">
<div>
<input id="__EVENTTARGET" name="__EVENTTARGET" type="hidden" value=""/>
<input id="__EVENTARGUMENT" name="__EVENTARGUMENT" type="hidden" value=""/>
<input id="__VIEWSTATE" name="__VIEWSTATE" type="hidden" value="/wEPDwUKMTkwNzM5ODc0MA9kFgICBQ9kFgYCAQ9kFgQCAQ9kFgQCCw8PFgIeBFRleHQFJTw8PCZuYnNwOyZuYnNwO0FEVC1TSlUmbmJzcDsmbmJzcDs+Pj5kZAINDw8WAh8ABV5GaXJlZm94Njggc3NzIEZpcmVmb3ggc3NzIE1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NDsgcnY6NjguMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC82OC4wZGQCBQ9kFgICAQ9kFgICAw8QZGQWAGQCAw8WAh4HVmlzaWJsZWhkAgkPZBYCZg9kFgICAQ9kFgJmD2QWAmYPZBYCAgEPPCsACwBkZGOx36TJfGYxlXBQnUWT0oEjFZMe"/>
</div>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>
<script src="/ERP_NEW/WebResource.axd?d=crEqWsFELBbHh-Zn9JwJz0Wc0o-EqMgq2DsgmxYpodKngnF9_tdzROczt7Z1R6CEd_keip4sQ_LfTnxTE8U2GfD44xA1&amp;t=636284885271971599" type="text/javascript"></script>
<script src="/ERP_NEW/ScriptResource.axd?d=a9N1yt0FgpEcl5aXFKCZ2X9SgsJ2qYN-d2KopL4gMypLQPw8LAeF4BHzoYVLzNa9w6-G_V9QlCGdsqPMDC_DebsmRaiEQIqMrJjqn0vIzq34Ir3OoXxewOGM_qPRp2ObV3xImsdYJ7yxmPI7AsXF3F5H3rVupYA6HRhX6Do29jnDyops0&amp;t=3f4a792d" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>
<script src="/ERP_NEW/ScriptResource.axd?d=b0YOHYigWFb9TAiz3emuj94HuiB1DWWtIIIDoxURzZz-WQydewo8iaKcx4oOdXWAjcaAZ09X834NxWOfrEuU6SPQtOT09pExt-CrQwLiihsxN9m1SEYem4EBGYazS7IjBxszp7ZffC1LqDSmfa2fQUKVewuCkJpyFhiDMaBfS3Ygj3AI0&amp;t=3f4a792d" type="text/javascript"></script>
<div>
<input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="FD7250D9"/>
<input id="__EVENTVALIDATION" name="__EVENTVALIDATION" type="hidden" value="/wEWBAL3ltW/BgLT8dy8BQK1qbSRCwKFoZPNA1abehnNI7/HTq494AZnY2PWZ6rX"/>
</div>
<div id="tblLogin">
<div class="form-control" id="tdLogin" style="padding:20px;">
<div style="width:100%; margin-bottom:20px">
<div style="display: table; margin: 0 auto;">
<a class="logo" id="A1" style="text-align:center">
<img alt="" src="../img/logo2.png"/>
</a>
</div>
</div>
<div class="input-group mb15">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<label class="sr-only" for="txtUserID">User Id</label>
<input autofocus="" class="form-control" id="txtUserID" name="txtUserID" placeholder="User Id" type="text" value="1400020"/>
</div>
<div class="input-group mb15">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
<label class="sr-only" for="txtPassword">Password</label>
<input autofocus="" class="form-control" id="txtPassword" name="txtPassword" placeholder="Password" type="password"/>
</div>
<input class="btn btn-primary btn-block" id="cmdLogin" name="cmdLogin" type="submit" value="Login"/>
<br/>
<p class="text-center" style="font-size:10.5px;font-weight:bold">
<span id="lblServerGroup">&lt;&lt;&gt;&gt;</span>
</p>
<p class="text-muted text-center" style="font-size:8.5px">© 2019, xxxx xxxx Group</p>
<p class="text-muted text-center" style="font-size:8.5px">
<span id="lblTest" style="color:white">Firefox68 sss Firefox sss Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0</span>
</p>
</div>
<div id="pnlFilter" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'cmdSelect')">
</div>
</div>
<div class="fdtl" id="divDialogDocList" style="display:none;">
<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tup_DocList'], [], [], 90);
//]]>
</script>
<div id="up_DocList">
<table align="center" border="0" cellpadding="9" cellspacing="1" class="tbl" id="pnl_DocList">
<tr class="dtl_c">
<td>
</td>
</tr>
</table>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
Sys.Application.initialize();
//]]>
</script>
</form>
</body>
BeautifulSoup(请求2.内容)
//
//
用户Id
密码

版权所有2019年,xxxx xxxx集团

Firefox68 sss Firefox sss Mozilla/5.0(X11;Linux x86_64;rv:68.0)Gecko/20100101 Firefox/68.0

// //

我的问题我错过了什么。。?感谢您的解释

在失败和几次重试后,我发现了问题,以下是解决方案:

  • 我用Wireshark分析http数据包。很明显,我在登录数据上遗漏了一些参数值(“LASTFOCUS”“事件目标”“事件参数”,以及cmdLogin),因此我的dict登录数据的结尾如下:

    {LASTFOCUS':'', “_EVENTTARGET”:”, “事件参数”:“, 这句话的意思是:’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’CZG9KfGICAQ9KfgJmD2QWAmYPZBYCAgEPPCsACwBkZGOx36TJfGYxlXBQnUWT0oEjFZMe', “uu VIEWSTATEGENERATOR”:“FD7250D9”, “事件验证”:“/wEWBAL3ltW/BgLT8dy8BQK1qbSRCwKFoZPNA1abehnNI7/HTq494AZnY2PWZ6rX”, “txtUserID”:“myuserID, “txtPassword”:“myPassword”, 'cmdLogin':'Login'}

  • 用请求发布数据

    r2=请求.post(url,数据=登录数据)

  • 而且很有效!!,因此,我的结论是,如果我们希望在python请求中使用表单后验证数据,就不要错过具有值atributehtml标记

    BeautifulSoup(request_2.content)
    <body>
    <form action="erp_login.aspx" class="form-signin" id="form1" method="post" name="form1">
    <div>
    <input id="__EVENTTARGET" name="__EVENTTARGET" type="hidden" value=""/>
    <input id="__EVENTARGUMENT" name="__EVENTARGUMENT" type="hidden" value=""/>
    <input id="__VIEWSTATE" name="__VIEWSTATE" type="hidden" value="/wEPDwUKMTkwNzM5ODc0MA9kFgICBQ9kFgYCAQ9kFgQCAQ9kFgQCCw8PFgIeBFRleHQFJTw8PCZuYnNwOyZuYnNwO0FEVC1TSlUmbmJzcDsmbmJzcDs+Pj5kZAINDw8WAh8ABV5GaXJlZm94Njggc3NzIEZpcmVmb3ggc3NzIE1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NDsgcnY6NjguMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC82OC4wZGQCBQ9kFgICAQ9kFgICAw8QZGQWAGQCAw8WAh4HVmlzaWJsZWhkAgkPZBYCZg9kFgICAQ9kFgJmD2QWAmYPZBYCAgEPPCsACwBkZGOx36TJfGYxlXBQnUWT0oEjFZMe"/>
    </div>
    <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['form1'];
    if (!theForm) {
        theForm = document.form1;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    </script>
    <script src="/ERP_NEW/WebResource.axd?d=crEqWsFELBbHh-Zn9JwJz0Wc0o-EqMgq2DsgmxYpodKngnF9_tdzROczt7Z1R6CEd_keip4sQ_LfTnxTE8U2GfD44xA1&amp;t=636284885271971599" type="text/javascript"></script>
    <script src="/ERP_NEW/ScriptResource.axd?d=a9N1yt0FgpEcl5aXFKCZ2X9SgsJ2qYN-d2KopL4gMypLQPw8LAeF4BHzoYVLzNa9w6-G_V9QlCGdsqPMDC_DebsmRaiEQIqMrJjqn0vIzq34Ir3OoXxewOGM_qPRp2ObV3xImsdYJ7yxmPI7AsXF3F5H3rVupYA6HRhX6Do29jnDyops0&amp;t=3f4a792d" type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
    //]]>
    </script>
    <script src="/ERP_NEW/ScriptResource.axd?d=b0YOHYigWFb9TAiz3emuj94HuiB1DWWtIIIDoxURzZz-WQydewo8iaKcx4oOdXWAjcaAZ09X834NxWOfrEuU6SPQtOT09pExt-CrQwLiihsxN9m1SEYem4EBGYazS7IjBxszp7ZffC1LqDSmfa2fQUKVewuCkJpyFhiDMaBfS3Ygj3AI0&amp;t=3f4a792d" type="text/javascript"></script>
    <div>
    <input id="__VIEWSTATEGENERATOR" name="__VIEWSTATEGENERATOR" type="hidden" value="FD7250D9"/>
    <input id="__EVENTVALIDATION" name="__EVENTVALIDATION" type="hidden" value="/wEWBAL3ltW/BgLT8dy8BQK1qbSRCwKFoZPNA1abehnNI7/HTq494AZnY2PWZ6rX"/>
    </div>
    <div id="tblLogin">
    <div class="form-control" id="tdLogin" style="padding:20px;">
    <div style="width:100%; margin-bottom:20px">
    <div style="display: table; margin: 0 auto;">
    <a class="logo" id="A1" style="text-align:center">
    <img alt="" src="../img/logo2.png"/>
    </a>
    </div>
    </div>
    <div class="input-group mb15">
    <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
    <label class="sr-only" for="txtUserID">User Id</label>
    <input autofocus="" class="form-control" id="txtUserID" name="txtUserID" placeholder="User Id" type="text" value="1400020"/>
    </div>
    <div class="input-group mb15">
    <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
    <label class="sr-only" for="txtPassword">Password</label>
    <input autofocus="" class="form-control" id="txtPassword" name="txtPassword" placeholder="Password" type="password"/>
    </div>
    <input class="btn btn-primary btn-block" id="cmdLogin" name="cmdLogin" type="submit" value="Login"/>
    <br/>
    <p class="text-center" style="font-size:10.5px;font-weight:bold">
    <span id="lblServerGroup">&lt;&lt;&gt;&gt;</span>
    </p>
    <p class="text-muted text-center" style="font-size:8.5px">© 2019, xxxx xxxx Group</p>
    <p class="text-muted text-center" style="font-size:8.5px">
    <span id="lblTest" style="color:white">Firefox68 sss Firefox sss Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0</span>
    </p>
    </div>
    <div id="pnlFilter" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'cmdSelect')">
    </div>
    </div>
    <div class="fdtl" id="divDialogDocList" style="display:none;">
    <script type="text/javascript">
    //<![CDATA[
    Sys.WebForms.PageRequestManager._initialize('ScriptManager1', document.getElementById('form1'));
    Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tup_DocList'], [], [], 90);
    //]]>
    </script>
    <div id="up_DocList">
    <table align="center" border="0" cellpadding="9" cellspacing="1" class="tbl" id="pnl_DocList">
    <tr class="dtl_c">
    <td>
    </td>
    </tr>
    </table>
    </div>
    </div>
    <script type="text/javascript">
    //<![CDATA[
    Sys.Application.initialize();
    //]]>
    </script>
    </form>
    </body>