파이썬을 사용하여 웹 페이지를 다운로드하고 구문 분석하고 싶지만 액세스하려면 몇 가지 쿠키 세트가 필요합니다. 따라서 먼저 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)