Pythonを使用してWebページをダウンロードして解析したいのですが、それにアクセスするにはいくつかのCookieが必要です。したがって、最初にWebページにhttpsでログインする必要があります。ログインの瞬間には、2つのPOSTパラメーター(ユーザー名、パスワード)を/login.phpに送信します。ログインリクエスト中に、レスポンスヘッダーからCookieを取得して保存し、リクエストでそれらを使用してWebページ/data.phpをダウンロードできるようにします。
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)