파이썬을 사용하여 웹 페이지에 로그인하고 나중에 사용하기 위해 쿠키를 검색하는 방법은 무엇입니까? 개의 POST 매개 변수 (사용자 이름,

파이썬을 사용하여 웹 페이지를 다운로드하고 구문 분석하고 싶지만 액세스하려면 몇 가지 쿠키 세트가 필요합니다. 따라서 먼저 https를 통해 웹 페이지에 로그인해야합니다. 로그인 순간에는 두 개의 POST 매개 변수 (사용자 이름, 비밀번호)를 /login.php로 보내는 것이 포함됩니다. 로그인 요청 중에 응답 헤더에서 쿠키를 검색하여 저장하여 요청에 쿠키를 사용하여 웹 페이지 /data.php를 다운로드하려고합니다.

파이썬 (어떻게 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세션 쿠키를 사용하여 모든 페이지를 보는 데 사용할 수 있습니다 .


답변

우수한 요청 라이브러리를 사용하는 버전은 다음과 같습니다 .

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)


답변