2013-01-12 101 views
-2

可能重複:
How to 「log in」 to a website using Python’s Requests module?如何登錄到網站與Python

我在Python 3.2.3編寫的應用程序,我不知道如何登錄到一個網站。我需要登錄...並保存cookie(我認爲),但我嘗試過的所有內容都不起作用。

我試過Requests,但沒有運氣。我的網頁正在本地主機上運行(這只是簡單的登錄表單)。

FORM: 
    <form method="post" action=""> 
      <input type="text" name="uname" placeholder="Uporabnisko ime:"/> 
      <input type="password" name="password" placeholder="Geslo:"/> 
      <input type="submit" value="Send"/> 
    </form> 

的Python:

import requests 
payload = {'uname': 'name', 'password': 'pswd123'} 
r = requests.post('http://localhost/python', data=payload) 

這什麼也不做。如何發佈名稱和用戶名.. 感謝您的回覆。

+1

你能在你面對錯誤擴大?由於你在localhost上運行的網站,我建議找到一種方法來從服務器獲取一些調試信息。 – TimD

+0

如果我登錄,我的SQL腳本將保存到數據庫的東西..在那裏我看到,我的Python腳本不適用於登錄。如果我把我的網站放在互聯網上,它是一樣的。所以我認爲這不是本地主機上的問題。 我不太明白這個字典,是HTML表單的關鍵ID嗎? 而.. requests.post()的結果是什麼?如何查看我是否已成功登錄? – What

回答

3

告訴蟒蛇請求「在一個登錄會話保留餅乾」,使用requests.session

import requests 
session = requests.session 
payload = {'uname': 'name', 'password': 'pswd123'} 
r = session.post('http://localhost/python', data=payload) 
r = session.get('http://localhost/authenticated/resource') 
# ^^^^^^^ 
+0

如何查看我是否成功登錄並保存了會話? – What

+0

您可以檢查'session.post'的返回值,就像其他任何請求一樣,查看響應狀態或內容是什麼,或者是否以意外的方式重定向。 – SingleNegationElimination

+0

我已經成功地在..但後來我的會議不見了..我可以得到記錄的源代碼,但如果我做了什麼,然後我的會議消失了。 – What