2017-05-30 56 views
0

我试图通过蟒蛇登录到一个网站,但表单字段没有名字仅仅是ID的处理JavaScript和Python

<ul> 
        <li id="unLi" class="unLi"><input class="text" id="userName" type="text" maxlength="15" /></li> 
        <li class="blank"></li> 
        <li id="pwLi" class="pwLi"><input class="text" id="pcPassword" type="password" maxlength="15"/></li> 
</ul> 

我试着提交表单下面的代码

import requests 

params = {'userName':'sahil','pcPassword':'mypassword'} 
r = requests.post("http://192.168.1.2/",data=params) 
r.status_code 
print(r.text) 

调用一个JavaScript函数PCSubWin()这就像这样

function PCSubWin() 
{ 
    if((httpAutErrorArray[0] == 2) || (httpAutErrorArray[0] == 3)) 
    { 
     if(true == CheckUserPswInvalid()) 
     { 
      var username = $("userName").value;    
      var password = $("pcPassword").value; 
      if(httpAutErrorArray[1] == 1) 
      { 
       password = hex_md5($("pcPassword").value); 
      }   
      var auth = "Basic "+ Base64Encoding(username + ":" + password); 
      document.cookie = "Authorization="+escape(auth)+";path=/"; 
      //location.href ="/userRpm/LoginRpm.htm?Save=Save"; 
      $("loginForm").submit(); 
      return true; 
     } 
     else 
     { 
      $("note").innerHTML = "NOTE:"; 
      $("tip").innerHTML = "Username and password can contain between 1 - 15 characters and may not include spaces."; 
     } 
    } 
    return false; 

现在我不是非常好的JavaScript,但我认为代码$("userName").value这个peice获取用户输入的值,我的问题是我如何在提交我的凭据时调用此函数?我的代码btw输出的登录页面不是用户主页相同的代码。

回答

1

你的要求是使用Basic HTTP Authentication所以你只需拨打该网站:

requests.get('http://192.168.1.2/userRpm/LoginRpm.htm', auth=('sahil', 'mypassword')) 

访问受保护的资源。

+0

你能告诉我如何验证我的登录信息吗?为前例如我可以从浏览器抓取网页网址,有什么方法可以验证我可以访问它吗? @moritzg – Sahil

+1

@Sahil通过查看[HTTP状态代码](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes)。如果登录不成功,服务器应该返回401或403。如果一切顺利,你会得到一个'200'。 – moritzg

+0

即使使用错误凭证,它也会给我一个200响应@moritzg – Sahil