python2019. 12. 26. 20:07
 
#쿠키와 세션

#로그인이 필요한 페이지의 경우 ,header에 특별한 정보를 정해진 포멧을 포함해야 한다.
#그 때, client내에 정보를 저정하는 것이 쿠키 (보안에 취약)
#server에 저장하는 방식은 세션 (client에서는 암호화된 값을 가진다)

#사이트마다 로그인 방식이 다르므로 그때마다 다른 기술을 적용해야한다.

#실습
#1, 로그인 필요한 웹페이지 요청시, 어떤 정보가 필요한가?
# - 쿠키 또는 세션
#2, 해당정보를 어떻게 코드레벨로 전달할 것인지?

import requests
from bs4 import BeautifulSoup

login_url = 'https://www.hanbit.co.kr/member/login_proc.php'
crawl_url = 'http://www.hanbit.co.kr/myhanbit/myhanbit.html'

#해당 세션을 기반으로 요청
session = requests.session()

params = { 'm_id':'id', 'm_passwd':'passwod'}

#url에 data를 넣어 요청
res = session.post(login_url,data=params)

# HTTP error code가 200이 아니면 다음으로 진행되지 않음.\
#if res.status_code == 200
res.raise_for_status()

#헤더 확인
#print(res.headers)

#저장된 세션 확인
#print(session.cookies.get_dict())

#해당 세션을 이용하여 url을 호출
res = session.get(crawl_url)
soup = BeautifulSoup(res.content,'html.parser')

#마일리지 정보 가져오기
#container > div > div.sm_mymileage > dl.mileage_section1 > dd > span
data = soup.select('div.sm_mymileage > dl.mileage_section1 > dd > span')

print('마일리지: ', data[0].get_text())


Posted by easy16