Table of contents
Issue Point
동아일보 대시보드 환경에서 동아 NOW, 날짜별 기사 조회수 100 등에서 Daum 데이터 수집 안되는 문제 발생
Detail
kit1 로그 보니까 Daum 로그인이 실패중이었음. Daum 채널 로그인을 못해서 DynamoDB로 쿠키 캐싱이 안되고, Parameter Store에서 해당 쿠키를 사용하는 Lambda 함수들도 모두 멈춰있던 상태.
해당 이슈는 23일부터 발생하였고 중간에 기사 조회수 데이터 수집 파이프라인 역시 자동으로 비활성화 됨.
Solution
donga-data-pipeline/lambda/login/daum/cookie/handler.py 를 보면, 로그인을 위해 Playwright Chromium을 사용하여 핑거프린트로 직접 로그인을 수행함.
처음에는 2FA인증으로 인해 핑거프린트 로직이 막혀서 그런가 했는데, Daum쪽 자동로그인 방지 정책 개선 이슈로 Chromium으로 자동 로그인 하는걸 봇이라 인식하고 막아버림. 때문에 이를 해결해야했는데,
•
-disable-blink-features=AutomationControlled : 구글 크롬(Blink 엔진)에 내장된 "이 브라우저는 자동 제어 중임"이라는 신호를 끔
•
ignore_default_args: ['--enable-automation'] : 브라우저 실행 시 기본적으로 붙는 -enable-automation 플래그를 강제로 제거. 이 플래그가 있으면 브라우저 상단에 "Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다"라는 경고줄이 뜨는데, 이를 제거해줌
•
navigator.webdriver 제거 : 대부분의 보안 스크립트는 JS로 navigator.webdriver 값을 확인함. 일반 브라우저는 undefined 이지만, 자동화 도구는 True . 때문에 값을 강제로 undefined로 바꿔줌
•
user_agent 설정도 메서드 내부 설정으로 추가
