我想使用python下載和解析網頁,但要訪問它,我需要一些cookie設置。因此我需要先通過https登錄到網頁。登錄時刻涉及向/login.php發送兩個POST參數(用戶名,密碼)。在登錄請求期間,我想從響應頭中檢索cookie並存儲它們,以便我可以在請求中使用它們來下載網頁/data.php。如何使用Python登錄到網頁並檢索cookie以備後用?
我該如何做到這一點在python(最好是2.6)?如果可能的話,我只想使用內置模塊。
我想使用python下載和解析網頁,但要訪問它,我需要一些cookie設置。因此我需要先通過https登錄到網頁。登錄時刻涉及向/login.php發送兩個POST參數(用戶名,密碼)。在登錄請求期間,我想從響應頭中檢索cookie並存儲它們,以便我可以在請求中使用它們來下載網頁/data.php。如何使用Python登錄到網頁並檢索cookie以備後用?
我該如何做到這一點在python(最好是2.6)?如果可能的話,我只想使用內置模塊。
import urllib, urllib2, cookielib
username = 'myuser'
password = 'mypassword'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'username' : username, 'j_password' : password})
opener.open('http://www.example.com/login.php', login_data)
resp = opener.open('http://www.example.com/hiddenpage.php')
print resp.read()
resp.read()
是要打開的頁面的直接的HTML,您可以使用opener
查看使用會話cookie的任何頁面。
下面是使用優秀requests庫版本:
from requests import session
payload = {
'action': 'login',
'username': USERNAME,
'password': PASSWORD
}
with session() as c:
c.post('http://example.com/login.php', data=payload)
response = c.get('http://example.com/protected_page.php')
print(response.headers)
print(response.text)
`resp.read()`會給你的內容 – 2010-12-11 04:05:32
這安全嗎?這不會允許數據包嗅探器看到明文密碼嗎?會使用Https更安全嗎? – Heartinpiece 2012-12-10 06:58:58