크롤링을 배웠다면, 이제 다음 단계는 “수집 → 정리 → 저장 → 활용” 입니다.
코드로 모은 데이터를 구글 시트(Google Sheets) 또는 노션 DB(Notion Database)에 자동으로 쌓아두면, 이후에 리포트/알림/GPT 요약까지 자연스럽게 확장할 수 있습니다.

오늘 글에서 만들 “최소 자동화”
- Selenium/requests/BeautifulSoup 등으로 수집한 결과를
- list/dict 형태로 정리한 다음
- 구글 시트에 append(누적 저장) 또는 노션 DB에 row(페이지) 생성
- 그리고 중복 방지 + 오류 재시도까지 기본 뼈대를 잡습니다.
본문 흐름에 자연스럽게 들어갈 키워드 ex) 파이썬 크롤링, Selenium 크롤링, 웹 스크래핑, 구글 시트 API, Notion API, 노션 데이터베이스, 자동화, gspread, requests, BeautifulSoup
1) 크롤링 결과, “이 형태”로 맞추면 연동이 쉬워집니다
크롤링 결과를 아래처럼 list 안에 dict로 통일해두면, 시트/노션 어디든 넣기 편합니다.
items = [
{
"source": "example_site",
"title": "상품명/기사제목",
"url": "https://...",
"price": 19900, # 없으면 None
"collected_at": "2026-01-07 10:30"
},
]
핵심 포인트 2개
- 스키마(컬럼) 고정: 나중에 데이터가 커져도 안 흔들립니다.
- 고유키(id) 만들기: 중복 방지의 시작입니다. (예: url 또는 hash(title+url))

2) 구글 시트에 자동으로 누적 저장하기
가장 정석은 Google Sheets API를 쓰는 방식입니다. 구글 공식 문서도 “Python Quickstart” 형태로 안내합니다. (Google for Developers)
Python 빠른 시작 | Google Sheets | Google for Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Python 빠른 시작 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Google Sheets API에 요청을 보
developers.google.com
준비
- Google Cloud에서 Google Sheets API 활성화
- OAuth/인증 설정 후 파이썬에서 호출
- “행 추가(append)”로 계속 누적
운영 단계(배포/서버)에서는 인증 방식(서비스 계정 vs OAuth)을 프로젝트 환경에 맞게 결정하는 게 중요합니다. (테스트는 OAuth가 편합니다.) (Google for Developers)
예시 코드
- 목표: items를 한 줄씩 시트에 추가
- 구현 방식은 2가지 중 하나를 선택하면 됩니다.
- A안: google-api-python-client (정석/유연)
- B안: gspread (쉽게 시작)

3) 노션 DB(Notion Database)에 자동으로 쌓기
노션은 “DB의 한 줄 = 페이지 1개” 개념입니다.
즉, 크롤링 결과 1건을 노션 페이지 생성(Create a page)으로 추가하면 됩니다. (developers.notion.com)
Create a page
Use this API to create a new page as a child of an existing page or data source .
developers.notion.com
준비
- Notion에서 Integration 생성 → 토큰 발급
- 노션 DB(데이터베이스)를 만든 뒤 해당 Integration을 연결(권한 부여)
- “페이지/DB를 Integration과 공유해야 생성/추가 가능” 구조입니다. (developers.notion.com)
- API로 페이지 생성: POST /v1/pages (developers.notion.com)
예시 코드
- database_id + properties로 row 생성
- title/url/price/수집시간 같은 필드를 넣어둡니다.

4) 자동화에서 제일 중요한 것: 중복 방지 + 안정성
연동은 금방 되지만, “매일 돌려도 안전”하게 만드는 건 여기서 갈립니다.
(1) 중복 방지(필수)
- 고유키 컬럼을 하나 두세요. (예: uid)
- uid가 이미 있으면 “스킵”
- 시트: uid 컬럼을 조회해서 비교
- 노션: uid 프로퍼티로 검색/필터 후 존재하면 스킵
(2) 실패했을 때 재시도(필수)
- 네트워크/일시 오류는 반드시 납니다.
- 기본 규칙:
- 3회 재시도
- 1초 → 2초 → 4초(지수 백오프)
- 실패 로그 남기기(나중에 원인 추적)

5) 현실적인 GPT 자동화로 연결하는 아이디어
시트/노션에 쌓인 데이터는 GPT로 요약/분류/보고서화하기 좋습니다.
연결 아이디어 3가지
- 요약 자동 생성
- 노션 DB에 요약 컬럼을 만들고, 새 row가 들어오면 요약 채우기
- 태깅/분류 자동화
- 예: “공지/이벤트/가격인하/품절” 같은 라벨을 자동 분류
- 리포트 자동 생성
- 매일 아침 “전날 수집 요약”을 문서로 생성(노션 페이지 or 구글 문서)
주의: 회사/개인정보/민감정보가 섞일 수 있는 데이터는 그대로 GPT에 넣지 말고 익명화/필터링이 먼저입니다.
“어떤 키워드를 본문에 넣을지” 빠르게 뽑는 방법
요청하신 블랙키위는 웹에서 JS 기반이라, 이 환경에선 키워드 표를 직접 열람하기 어려웠습니다.
대신 실무에서는 Google Trends의 ‘관련 검색어’를 pytrends로 뽑아 “소제목/문장”에 자연스럽게 섞는 방식을 많이 씁니다.
pytrends: 파이썬에서 Google Trends를!
Google Trends란 뭘까? Google Trends is a website by Google that analyzes the popularity of top search queries in Google Search across various regions and languages. Google Trends는 다양한 지역과 언어에서 Google 검색의 인기 검색어의
miniolife.tistory.com
(예: “파이썬 크롤링 구글 시트 저장”, “노션 API 자동화”, “Selenium 크롤링 결과 정리”)
“수집”이 아니라 “적재”가 자동화의 시작입니다
오늘 만든 구조(크롤링 → 시트/노션 적재)는, 이후에 GPT를 붙이든 알림을 붙이든 그대로 확장됩니다.
중요한 건 화려한 기능이 아니라 스키마 고정 + 중복 방지 + 재시도 이 3가지입니다.
'코딩과 AI와 자동화 > 크롤링' 카테고리의 다른 글
| 뉴스·여행·생활 데이터를 자동으로 모으는 크롤링 입문 가이드 (1) | 2026.01.16 |
|---|---|
| 3편. Selenium을 이용한 동적 페이지 처리 (1) | 2025.12.23 |
| 2편. 파이썬 Requests + BeautifulSoup로 크롤링 실습 (0) | 2025.12.10 |
| 1편. 웹 크롤링의 개념과 기본 구조 정리 (0) | 2025.12.06 |