Requests --> Selenium 세션 쿠키 유지
2024. 1. 26. 12:02ㆍIT관련
반응형
웹사이트에 로그인 후 작업하는 것을 자동화 해야 한다. Selenium으로 로그인하면 되는데, 이 경우 id/ password가 유출될 수 있고 selenium은 post 방식의 api를 지원하지 않는다. 게다가 chrome을 실행해야 하기 때문에 실행 속도가 빠르지도 않다. 그래서 requests로 빠르게 로그인 하고 세션을 유지한채 chrome으로 전환하고 싶었다.
로그인을 유지하려면 세션 쿠키를 유지하면 되는데 쿠키에 대해서는 HTTP 쿠키를 참고하도록 한다. 추가로 쿠키에는 여러가지 attributes가 존재하며 모질라 웹사이트에 가면 attributes에 대해 자세히 알 수 있다.
requests --> selenium
# requests 로그인
url = 'xxx/login'
params = {
"id": "id",
"pwd": "pwd",
}
session = requests.Session()
response = session.post(url, params=params) # POST로 로그인 시도
if response.status_code == 200:
print('로그인 성공')
else:
return
# selenium 실행
url = 'xxx/main'
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
driver.get(url) # URL로 이동
# requests 세션 쿠키를 selenium에 복사
for cookie in response.cookies:
cookie_dict = {"domain": cookie.domain, "name": cookie.name,
"value": cookie.value, "secure": cookie.secure}
if cookie.expires:
cookie_dict["expires"] = cookie.expires
if cookie.path_specified:
cookie_dict["path"] = cookie.path
driver.add_cookie(cookie_dict) # 쿠키 적용
response의 cookie를 selenium에 add_cookie해서 적용하면 로그인 상태를 유지하게 된다.
반응형
'IT관련' 카테고리의 다른 글
리모트 디버깅 포트 사용중인 크롬 브라우저 여부 확인 방법 (0) | 2024.01.31 |
---|---|
Selenium chrome 실행시 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 자동화 메시지 제거 (0) | 2024.01.26 |
Selenium 프로필 적용 및 창 제어 (0) | 2024.01.24 |
셀레늄(Selenium)으로 웹제어 (0) | 2024.01.23 |
Raspberry Pi 4B(64 bits OS)에서 원격데스크톱(xrdp) 연결 오류 (0) | 2023.09.12 |