프로젝트/블로그 자동화 프로그램

셀레니움으로 로그인 세션 유지하기: 쿠키 저장과 불러오기 실습

print() 2025. 5. 19. 14:38
300x250

 

블로그 자동화를 구현하는 과정에서 가장 번거로운 요소는 로그인 절차이다. 특히 티스토리와 같이 보안이 강화된 플랫폼은 로그인 시 휴대폰 인증을 요구하는 경우가 많아, 완전한 자동화에 큰 걸림돌이 된다. 이 문제를 우회하는 방법 중 하나는 로그인 쿠키를 저장하고 이후 자동으로 불러오는 방식이다.


1️⃣ 쿠키 방식의 원리

웹사이트 로그인 시 생성되는 세션 쿠키(Session Cookie)를 저장해두고, 이후 페이지 접근 시 이 쿠키를 브라우저에 다시 주입하면 로그인 상태가 유지된다. 이는 브라우저가 로그인된 사용자인 것처럼 인식하게 만드는 효과가 있다.


2️⃣ 구현 방법

✅ 로그인 후 쿠키 저장하기

WebDriver driver = new ChromeDriver();
driver.get("https://www.tistory.com/login");

// 수동 로그인하거나 자동화로 로그인 처리

Set<Cookie> cookies = driver.manage().getCookies();
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("cookies.data"))) {
    oos.writeObject(cookies);
}
System.out.println("쿠키 저장 완료");

 

✅ 저장한 쿠키 불러오기

WebDriver driver = new ChromeDriver();
driver.get("https://www.tistory.com");

try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("cookies.data"))) {
    Set<Cookie> cookies = (Set<Cookie>) ois.readObject();
    for (Cookie cookie : cookies) {
        driver.manage().addCookie(cookie);
    }
}
driver.navigate().refresh(); // 쿠키 적용 후 새로고침
System.out.println("쿠키 적용 완료, 로그인 상태 유지됨");

 


3️⃣ 유의사항

  • 쿠키는 유효기간이 있음 → 일정 시간이 지나면 만료되어 다시 로그인 필요
  • 보안 강화된 서비스에서는 쿠키 외에도 토큰 검증, IP 확인 등의 절차가 존재할 수 있음
  • 로그인한 사용자와 동일한 환경(브라우저, 프로필 등)에서 사용해야 적용됨

4️⃣ 실제 적용 팁

  • 크롬 프로필 연동과 병행 시 쿠키 방식은 더욱 안정적
  • 특정 쿠키 값만 저장하고 주입하는 방식도 가능 (Set-Cookie 헤더 분석)
  • 저장된 쿠키를 JSON으로 직렬화해 다른 언어(Python 등)에서도 활용 가능

 

300x250