2017-01-17 36 views
1

我想在系統上驗證用戶,但我從同一個腳本得到不同的響應。在程序的某些執行過程中,它返回頁面的內容(仍然不知道它是否被認證),但有時它不會返回任何東西。我試圖使用庫「請求」,但這同樣的結果。無論如何,我可以測試此用戶是否驗證或不在此頁面上?Urllib2 - 返回有時沒有,有時頁面內容

import urllib,urllib2 
user = "[email protected]" #Test user 
passd = "Muranga21" #Test pass 

data = { 
    'dest':'REDIR|https://sac.uol.com.br/', 
    'skin':'', 
    'user':user, 
    'pass':passd, 
    'url':'', 
    'sc':'', 
    'deviceId':'' 
    } 

opener = urllib2.build_opener() 
post_data = urllib.urlencode(data) 
req2 = urllib2.Request("https://acesso.uol.com.br/login.html", post_data) 
content = opener.open(req2) 
page = content.read() 
print page 

回答

0

我試過這個腳本,並在makingsubsequent請求後,我得到302響應代碼。我想,有一些與網站相關的IP檢查(https://acesso.uol.com.br/login.html),它不會讓你從相同的IP做出很多請求。因此,爲了處理這個問題,你應該使用代理服務器,每個請求發送不同的IP地址。

Python有一個很好的示例來演示如何使用urllib與opener和代理處理程序。

通過。 https://docs.python.org/2.4/lib/urllib2-examples.html

+0

我不知道原因,但在PHP後續身份驗證是可能的,而不使用任何代理,我試圖做的是將PHP腳本傳遞給Python,但我有這個問題,我試圖使用代理,但有一些塊並沒有多大幫助。 –

+0

您是否在發送請求之前嘗試使用代理與python並且它不起作用?在大多數情況下,您不需要使用代理服務器,但是我發現您的情況下啓用了服務器上的IP檢查,您應該使用urllib2的代理處理程序。 –