2017-06-17 385 views
0

我有一个宽带连接,需要我登录,只要我想使用互联网。使用python请求登录到jsp登录页面

但出于某种原因,他们有登录我出去没有任何警告的错误随机,所以我想做出登录我每当我登录了一个python脚本(我可以用脚本一个cronjob)

,因为它是一个登录服务器,它不能从互联网访问

所以我已经提供了该页面的登录表单,这应该是足够正确的发布发布请求?

如果不是让我知道我会提供的源代码

这里是我的宽带提供商的登录页面的形式

<form name="login" method="post" action="loginUI.do2" onsubmit="if (this.checker.checked) toMem(this)" id="login-form"> 






<div id="templatemo_wrapper"> 
    <div id="templatemo_menu"> 
<marquee scrollamount="3" behavior="slide" direction="left" height="20" width="100%" style="color:#00162b"><p>&nbsp; Your Default Password is <strong style="color:#FFFFFF">wnpl123</strong> for first time login only. Please change your password after first login.</p></marquee> 
    </div> <!-- end of templatemo_menu --> 

    <div id="templatemo_header_bar"> 

    <div id="headerrs"> 
     <img src="images/pay.png" width="650"> </div> 

<div id="header"><!--<div class="right"></div>--> 

       <h1><a href="#"> 
        <img src="images/templatemo_logo.png" alt="Site Title" width="254"> 
        <span>&nbsp;</span> 
       </a></h1> 
     </div> 

      <div style=" font-size:22px; color:#000; margin-top:10px; float:right; font-family:Arial, Helvetica, sans-serif; left: 878px; top: 0px; width: 285px;"> Toll Free : 1800 419 4244</div> 

    </div> <!-- end of templatemo_header_bar --> 

    <div class="cleaner"></div> 

    <div id="sidebar"><div class="sidebar_top"></div><div class="sidebar_bottom"></div> 

     <div class="sidebar_section"> 

      <h2>Login Form</h2> 
      <div style="color:#FFFF00; font-size:12px; margin-top:45px; margin-bottom:10px;"><b> 

     </b></div> 


       <label>Username</label> 
       <input type="text" name="Username" size="20" class="input_field"> 
       <label>Password</label> 
       <input type="password" value="" name="Password" class="input_field" title="password"> 
       <input type="hidden" name="LoginName"> 
       <input type="hidden" name="LoginPassword"> 
       <label for="checkbox"><br><input type="checkbox" name="checker" id="checker"> Remember Me</label> 
      <br> 


<input type="submit" value="Login" id="submit_btn" onclick="return validateForm()"> 



     </div> 

这是之前的链接登录

http://192.168.183.201:9088/WISHN/Login.jsp

这是

http://192.168.183.201:9088/WISHN/Home.jsp

我想这与cookiejar它不起作用登录后链接

import requests 
import cookielib 


jar = cookielib.CookieJar() 
login_url = 'http://192.168.183.201:9088/WISHN/Login.jsp' 
acc_pwd = {'Username':'my username', 
      'Password':'my password' 
      } 
r = requests.get(login_url, cookies=jar) 
r = requests.post(login_url, cookies=jar, data=acc_pwd) 


page = requests.get('http://192.168.183.201:9088/WISHN/loginUI.do2', cookies=jar) 

print page.text 

我有一个请求,只尝试

import requests 

url = 'http://192.168.183.201:9088/WISHN/loginUI.do2' 
payload = { 
    'Username': 'my username', 
    'Password': 'my password',} 

s = requests.Session() 
response = s.post(url, data=payload) 
print(response.text) 

但如预期,这并不工作

,正如你所看到的动作和方法后

<form name="login" method="post" action="loginUI.do2" onsubmit="if (this.checker.checked) toMem(this)" id="login-form"> 

我不想使用硒的webdriver我要打这个轻量级的

编辑: 截图当我使用firefox篡改数据插件时发出的请求

enter image description here

+0

为什么这个标记的PHP? – rtfm

+0

删除对不起,它是在标签推荐,所以我点击 –

回答

1

尝试对更新的有效载荷,用“篡改数据”插件在Firefox检查的请求,并相应地更新有效载荷。

import requests 

url = 'http://192.168.183.201:9088/WISHN/loginUI.do2' 
payload = { 
    "Username" : "Your Username" 
    "Password" : "Your Password" 
    "LoginName" : "" 
    "LoginPassword" : "" 
    "checker" : "" 
    } 
s = requests.Session() 
response = s.post(url, data=payload) 
print(response.text) 
+0

LoginName,LoginPassword和检查器包含没有值,我让它们保持空白? –

+1

是的,空引号应该这样做。 – Stack

+0

感谢您的反馈意见,它不工作 –