-
네이버 등 웹 페이지의 쿠키(cookie)를 가져와서 저장하기 (with Python)코딩 연습/코딩배우기 2021. 12. 25. 00:10반응형
네이버 등 웹 페이지에서 로그인 상태를 유지하기 위한 쿠키를 추출해서 클라이언트(PC)에 저장하는 코딩 연습 내용이다. 이를 응용하면 저장된 쿠키를 header에 추가하여 서버에 전달하고 세션을 유지한 상태로 페이지 스크래핑(크롤링) 등을 할 수 있다.
웹 페이지의 모든 쿠키를 저장해보자
from selenium import webdriver def all_cookies(url): chrome_options = webdriver.ChromeOptions() # chrome_options.add_argument('--headless') chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--disable-gpu') chrome_options.add_experimental_option('excludeSwitches', ['enable-logging']) driver = webdriver.Chrome('./chrome_driver/chromedriver.exe', options=chrome_options) driver.get(url) current_url = driver.current_url sw = -1 while sw: question = input('\nID와 PW 입력하고 로그인하셨나? (y/n)>> ') if question == 'y': sw = 0 break else: print("'y' or 'n' 입력하세요!!") all_cookies = driver.get_cookies() print(f'all_cookies: {all_cookies}') cookies_dict = {} for cookie in all_cookies: cookies_dict[cookie['name']] = cookie['value'] string = '' for key in cookies_dict: string += f'{key}={cookies_dict[key]};' print(string) with open("all_cookies.txt", 'w') as f: f.write(string) driver.quit() return current_url if __name__ == '__main__': url = 'https://nid.naver.com/nidlogin.login' result = all_cookies(url) print(f'쿠키 추출이 완료되었습니다.\n현재 URL: {result}\n\n')
로그인 안하고 쿠키 추출
- 쿠키 파일을 저장할 폴더와 크롬 웹 드라이버 파일이 있는 경로를 수정하고 실행해야 한다.
- 셀레니움(selenium) 크롬 웹 드라이버를 통해 개발자 디버깅 모드로 크롬 브라우저가 열린다.
- id와 password 입력 없이 터미널 창에 출력된 "ID와 PW 입력하고 로그인하셨나? (y/n)>>"에 y를 입력하면 로그인 안된 상태의 쿠키값이 all_cookies.txt 파일로 저장되고,
- id와 password를 입력하고 터미널 창에 출력된 "ID와 PW 입력하고 로그인하셨나? (y/n)>>"에 y를 입력하면 로그인된 상태의 모든 쿠키값이 all_cookies.txt 파일로 저장된다.
- 다음(Daum)이나 기타 웹 사이트의 로그인 주소(URL)을 함수의 파라미터로 입력하고 실행하여 쿠키를 저장할 수 있다.
반응형'코딩 연습 > 코딩배우기' 카테고리의 다른 글
파이썬 selenium 라이브러리 - find_elements_by_* commands are deprecated. (0) 2021.12.25 크롬 웹드라이버 '시스템에 부착된 장치가 작동하지 않습니다.' 메시지 (0) 2021.12.25 파이썬 pytube 오류 메시지 - AttributeError: 'NoneType' object has no attribute 'span' (4) 2021.12.19 [파이썬 크롤링 연습] 쿠팡(Coupang) 상품 리스트 가져오기 (0) 2021.12.12 파이썬 pip 명령 에러 메시지 - ModuleNotFoundError: No module named 'pip' (0) 2021.12.12
