2017-07-05 93 views
0

我已經經歷了與此相關的所有與stackoverflow相關的問題,但我無法解決我的問題。當我執行follwing代碼時,它運行成功,沒有任何錯誤,但沒有打印。如何使用請求通過python登錄網站?

import requests 


payload = {'username': 'user','password': 'pass'} 


with requests.Session() as s: 
    p = s.post(' file-transfers.in/login.php?rid=worlddomains', 
      params=payload) 
    r = s.get('http://file-transfers.in/member_arean.php') 
    print r.text 

回答

0

Python requests docs有一整章關於認證。

基本身份驗證需要身份驗證的

許多Web服務接受HTTP基本驗證。 這是最簡單的一種,請求支持它直接從 框中。

製作與HTTP基本驗證請求非常簡單:

>>> from requests.auth import HTTPBasicAuth 
>>> requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'pass')) 
<Response [200]> 

事實上,HTTP基本認證是很常見的,要求提供使用它方便的 速記:

>>> requests.get('https://api.github.com/user', auth=('user', 'pass')) 
<Response [200]> 

提供元組裏的憑證li這與上面的HTTPBasicAuth示例中的 完全相同。

+0

我已經實施了這個。但同樣的問題。 –

+0

由於您既未給出確切的錯誤消息,也未嘗試訪問此網站的實際網站是您必須期待的基本答案。另外,您實際執行了8種以上的哪種方法,結果如何?如果*基本身份驗證*不起作用,也許該網站使用另一個系統? –

+0

這是登錄頁面http://file-transfers.in/login.php?rid=worlddomains –

0

有問題的網站期待您發送您的用戶名/密碼爲POST數據,而不是網址參數這樣:

payload = {'username': 'user','password': 'pass'} 

with requests.Session() as s: 
    p = s.post('http://file-transfers.in/login.php?rid=worlddomains', data=payload) 
    r = s.get('http://file-transfers.in/member_arean.php') 
    print(r.text) 

可能有更多的東西,一旦登錄通行證,但沒有一個我們無法檢查發生了什麼事。