LESSON 18

사례 ③ 수집·관리 — 메일·문서·학습 사이트·관리 화면을 매일 읽기

개인 지식 위키와 관제탑에 자료를 모으는 수집 자동화

오늘의 목표

로그인이 필요한 메일·구글 문서·학습 사이트·검색 결과를 Aside로 매일 모으고, 콘솔 화면의 반복 클릭까지 스크립트로 처리하는 방식을 익힙니다.

예상 소요 시간 약 45분

사례 한눈에

사례방식핵심실행
A. Gmail·구글 문서 수집repl탭 없이 쿠키 fetch, 계정 여러 개 구분매일 아침 예약
B. 학습 사이트 영상 목록repl목록 펼치기 반복 클릭, 8개씩 나눠 호출매일 아침 예약
C. 검색 결과 사례 수집repl(읽기만)결과 링크만 모으고 본문은 요약수동
D. 콘솔 반복 클릭replsnapshot ref 로 정확히 누르기수동

수집은 읽기만 하므로 가장 먼저 자동화하기 좋은 일입니다. 전부 무료인 repl로 돕니다.


A. Gmail·구글 문서 수집 — 탭을 열지 않는다

Aside에 미리 들어 있는 Gmail·문서·시트 도구를 쓰면 탭을 열지 않고 읽습니다.

aside skills show google-gmail     # 사용법 먼저 읽기
aside skills show google-docs
  • 메일은 gmail.search(계정, "검색어") 로 찾습니다. 구글 계정이 여러 개면 계정 번호(0, 1, 2…)로 구분합니다.
  • 문서는 내보내기 주소(txt·tsv)를 쿠키 fetch 로 받습니다. 한 번 호출에 10개씩(120초 제한).

함정

  • repl 안의 fs 는 세션의 artifacts/ 폴더에만 씁니다. 결과는 출력으로 받아 바깥 스크립트가 저장합니다.
  • 시트 읽기가 맨 아래 몇 줄을 빠뜨린 일이 있습니다. 행 수를 따로 세어 비교하세요.
  • 해당 계정의 Aside 창이 닫혀 있으면 요청이 거절됩니다. 수집용 창 하나는 열어 두세요.

B. 학습 사이트 영상 목록 — 나눠서 부르기

주차별 영상 묶음을 펼쳐 영상마다 제목·날짜·주소를 모으는 일입니다.

  1. 목록 페이지를 열고, 묶음 버튼을 page.evaluate 안에서 직접 찾아 누릅니다(15강 함정 2).
  2. 영상 버튼을 하나씩 눌러 재생 칸의 주소를 읽습니다.
  3. 묶음 하나의 영상 8개씩 한 호출로 나눕니다. 영상이 60개를 넘자 한 번에 돌던 스크립트가 매일 끊겼고, 나눈 뒤 3분 30초에 69개를 안정적으로 모읍니다.
  4. 로그인 화면이 보이면 바로 실패로 끝내고 알립니다.

C. 검색 결과 사례 수집 (읽기만)

경쟁 사이트·업종 사례를 찾을 때 검색 결과의 링크(a[href])만 page.evaluate 로 모읍니다. 본문을 못 가져오면 화면 글(innerText)로 대신하고, 다 쓴 탭은 closeTab 으로 닫습니다. 저장은 제목·링크·짧은 요약만 합니다(저작권).


D. 콘솔 반복 클릭 — ref 로 정확히

클라우드 콘솔에서 "새 키 만들기 → 확인"처럼 같은 클릭을 여러 프로젝트에 반복할 때도 씁니다.

const d = await snapshot(page, { interactive: true, selector: '[role="dialog"]' });
const ref = d.tree.match(/button "확인" \[ref=(\w+)\]/)[1];
await page.locator(ref).click();

대화상자 안의 버튼을 이름 체인(getByRole().getByRole())으로 찾는 방식은 업데이트 뒤 깨진 적이 있어, 스냅샷의 ref 를 쓰는 쪽이 안전합니다. 결과 파일은 ~/Downloads 에 생기니 이름 패턴으로 찾아 옮깁니다.

키·비밀번호를 만드는 작업은 자동화 도구의 안전 검사에 막힐 수 있습니다. 막히면 우회하지 말고, 페이지만 열어 두고 버튼은 사람이 누르세요.


🧪 실습

실습 미션 — 내 메일 하나 검색해 제목만 모으기

  • aside skills show google-gmail 로 사용법을 읽었다
  • repl로 최근 메일 5통의 제목·날짜만 출력했다(본문은 저장하지 않음)
  • 같은 일을 매일 아침 돌리려면 예약 설정에 무엇이 필요한지(PATH·Aside 켜기) 적었다

오늘의 체크리스트

  • 수집은 읽기만 — 가장 먼저 자동화할 일
  • 탭 없이 되는 건 사이트 도구·쿠키 fetch로
  • 길면 나누고, 버튼은 ref 로