2014-10-29 144 views
0

我是網頁抓取的新手,但想嘗試在項目中使用它。我想登錄到fantasyfootball網站,下面是從網站的形式: 試圖使用python登錄到網站

<fieldset> 

    <table cellspacing="0" cellpadding="0" border="0" width="695" class="data-entry"> 
     <tbody> 
     <tr> 
      <td> 
       <label><span>Email Address</span></label> 
       <input id="j_username" class="required email" type="text" name="j_username" title="*Please enter a valid email address" /> 
      </td> 
      <td> 
       <label><span>Password</span></label> 
       <input id="j_password" class="required password" type="password" name="j_password" title="*Please enter a valid password<br/>(minimum 6 characters)" /> 

這裏是我到目前爲止的代碼:

from httplib2 import Http 
from urllib.parse import urlencode 
url='https://users.premierleague.com/PremierUser/account/login.html' 
h=Http() 
email='myemail' 
password='mypassword' 
h.add_credentials(email,password) 
data={'j_username':'myemail','j_password':'mypassword'} 
web_data = urlencode(data) 
response, content = h.request(url, 'POST', web_data) 

我沒有得到任何錯誤,在剛剛沒事全部

+2

我會建議[請求](http://docs.python-requests.org/en/latest/)庫。 – Noctua 2014-10-29 14:17:23

+0

你能打印迴應嗎? – ErlVolton 2014-10-29 14:18:15

+0

你確定你已經擁有了所有的數據包嗎?您可以剖析使用Chrome開發人員工具發送的請求,以檢查這一點。 – matsjoyce 2014-10-29 14:18:19

回答

0

問題是您POST'ing到頁面包含登錄窗體,而不是處理登錄窗體的頁面。如果您檢查登錄表單的HTML,則會看到action網址爲「../j_spring_security_check」,相當於https://users.premierleague.com/PremierUser/j_spring_security_check。所以在你的代碼中改變URL。還要擺脫add_credentials行,因爲他們沒有使用HTTP基本身份驗證。一旦你達到這個目標,你可能仍然不會在登錄頁面的響應中得到一個主體。登錄成功後,它可能會將您帶到主頁。因此,仔細查看您的響應標題即可。同樣在成功登錄時,它會給你一些會話ID,你需要在隨後的請求中包含一些會話ID以證明你已經登錄。但是,這個網站的詳細信息將特定於管理會話。

+0

感謝您的信息。我改變了它,仍然沒有任何反應。但我得到了不同的迴應:{'content-length':'0','content-type':'text/plain; charset = UTF-8','location':'https://users.premierleague.com/PremierUser/account/login-retry.html','set-cookie':'BIGipServerPOOL-46.38.180.105-8443 = 3373535404.64288。 0000;路徑= /','日期':'週三,2014年10月29日14:37:42 GMT','狀態':'302','連接':'關閉'} – user3046660 2014-10-29 14:39:14

+0

好吧,這是說你的憑證是無效的,請注意它如何將您重定向到登錄重試頁面。 – ErlVolton 2014-10-29 14:44:59

+0

是的,我注意到它發送我回到重試登錄頁面,憑據是正確的。我只是想改變一下,看看有沒有什麼可行的,即將推出 – user3046660 2014-10-29 15:08:24