1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #쿠키와 세션 #로그인이 필요한 페이지의 경우 ,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()) |
'python' 카테고리의 다른 글
정규표현식 연습 1. (0) | 2019.12.26 |
---|---|
자주 쓰는 string 함수 (0) | 2019.12.26 |
크롤링 연습 9. 공공데이터 ex)미세먼지 (0) | 2019.12.26 |
크롤링 연습 8. Open API사용한 report 작성 (0) | 2019.12.26 |
크롤링 연습 7. open API test (0) | 2019.12.26 |