2017-06-17 170 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

感謝您的反饋意見,它不工作 –