본문 바로가기
코딩 연습/코딩배우기

네이버 등 웹 페이지의 쿠키(cookie)를 가져와서 저장하기 (with Python)

by good4me 2021. 12. 25.

goodthings4me.tistory.com

 


네이버 등 웹 페이지에서 로그인 상태를 유지하기 위한 쿠키를 추출해서 클라이언트(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')

 

로그인 안하고 쿠키 추출


good4me.co.kr


 

- 쿠키 파일을 저장할 폴더와 크롬 웹 드라이버 파일이 있는 경로를 수정하고 실행해야 한다. 

- 셀레니움(selenium) 크롬 웹 드라이버를 통해 개발자 디버깅 모드로 크롬 브라우저가 열린다.

- id와 password 입력 없이 터미널 창에 출력된 "ID와 PW 입력하고 로그인하셨나? (y/n)>>"에 y를 입력하면 로그인 안된 상태의 쿠키값이 all_cookies.txt 파일로 저장되고,

- id와 password를 입력하고 터미널 창에 출력된 "ID와 PW 입력하고 로그인하셨나? (y/n)>>"에 y를 입력하면 로그인된 상태의 모든 쿠키값이 all_cookies.txt 파일로 저장된다.

- 다음(Daum)이나 기타 웹 사이트의 로그인 주소(URL)을 함수의 파라미터로 입력하고 실행하여 쿠키를 저장할 수 있다.

 

 

댓글