Python으로 Google 자동완성 키워드 도구를 만들었습니다 (소스 코드 포함)

발행: (2026년 1월 8일 오후 09:44 GMT+9)
6 min read
원문: Dev.to

Source: Dev.to

왜 구글 자동완성인가?

Google 자동완성은 가장 신뢰할 수 있는 키워드 데이터셋 중 하나입니다.

  • 모든 제안은 실제 검색에서 나옵니다
  • 사용자 의도를 반영합니다
  • 롱테일 쿼리를 일찍 노출합니다

내부적으로 대부분의 SEO 도구는 동일한 엔드포인트를 호출합니다:

https://suggestqueries.google.com/complete/search

KeySage는 직접 연결합니다 — API도 없고 인증도 필요 없습니다.

고수준 아키텍처

KeySage는 백그라운드 스크래핑 스레드를 가진 단일 프로세스 데스크톱 앱입니다.

구성 요소기술
UI layerTkinter + ttkbootstrap
Networkingrequests
Concurrencythreading + Event flags
Data modelset + defaultdict
ExportsTXT / CSV / JSON

목표는 단순함과 해킹 가능성이었습니다.

스크래핑 로직

각 기본 키워드는 구성 가능한 확장 파이프라인을 통과합니다:

  1. 기본 키워드 입력
  2. 선택적 앞/뒤에 붙이는 단어
  3. 문자 확장: a–za–z + 0–9
  4. Google 자동완성 요청
  5. 중복 제거
  6. 실시간 UI 업데이트

예시 요청

params = {
    "client": "firefox",
    "q": query,
    "hl": language,
    "gl": country
}
response = requests.get(
    "https://suggestqueries.google.com/complete/search",
    params=params
)

결과는 app.after()를 사용해 Tkinter 스레드‑안전을 유지하면서 UI로 스트리밍됩니다.

UI가 멈추지 않는 스레딩

Tkinter는 단일 스레드이므로 스크래핑은 백그라운드 스레드에서 실행됩니다.

사용된 주요 패턴:

  • threading.Thread(..., daemon=True)
  • 안전한 취소를 위한 threading.Event()
  • app.after()를 통해 UI 업데이트를 메인 루프로 전달

이를 통해:

  • 실시간 키워드 출력
  • 즉시 취소 가능
  • UI 정지 없음

속도 제한 및 안정성

Google은 공격적인 스크래핑을 좋아하지 않습니다. KeySage는 다음을 포함합니다:

  • 요청 사이에 내장된 지연
  • 선택적 프록시 지원
  • 각 루프마다 안전 중지 실행

이러한 조치는 무모하지 않으면서도 앱을 사용할 수 있게 유지합니다.

자동 키워드 클러스터링

스크래핑 후, 키워드는 루트 단어별로 그룹화됩니다:

root = keyword.split()[0].lower()
clusters[root].append(keyword)

클러스터는 모든 내보내기 형식에서 유지됩니다.

데이터 내보내기 (개발자 친화적)

지원 형식:

  • TXT – 인간이 읽을 수 있는 클러스터
  • CSV – SEO 도구 및 스프레드시트
  • JSON – 자동화 및 파이프라인

모든 것이 열려 있고 편집 가능합니다.

UI: Tkinter, 하지만 못생기지 않게

인터페이스는 기본 Tkinter 모양을 피하기 위해 ttkbootstrap을 사용합니다.

Features:

  • Responsive layout
  • Themed widgets
  • Collapsible advanced settings
  • Live scrolling output
  • Built‑in help window

It’s intentionally minimal — no Electron, no web stack.

EXE vs 소스 코드

Three options are offered:

OptionPriceDescription
Windows EXE$7즉시 실행, 파이썬 필요 없음
Full Source Code$10학습, 수정, 확장
EXE + Source$12두 가지 장점 모두

👉 여기에서 KeySage를 받으세요:

왜 소스 코드를 공개하나요?

개발자는 실제 도구를 통해 가장 잘 배웁니다 — 장난감 예제가 아니라. 소스가 있으면 다음을 할 수 있습니다:

  • 비동기 요청 추가
  • 클러스터링 개선
  • 새로운 내보내기 형식 추가
  • 다른 제안 소스 통합
  • CLI 또는 API로 전환

이 프로젝트는 기반이 되도록 설계되었습니다.

최종 생각

KeySage는 엔터프라이즈 SEO 플랫폼을 대체하려는 것이 아닙니다. 투명하고 해킹이 가능한 키워드 도구이며, 다음으로 구축되었습니다:

  • Python
  • 일반 라이브러리
  • 단순한 아키텍처
  • 벤더 종속 없음

실제 환경에서의 스크래핑 + 데스크톱 앱의 실용적인 예시를 원하거나, 실제로 사용할 수 있는 도구를 찾고 있다면, 이것이 바로 당신을 위한 것입니다.

👉 구매 / 다운로드 KeySage:

Back to Blog

관련 글

더 보기 »

보안 Password Manager 구축

개요 이 프로젝트는 Python과 Tkinter를 사용하여 만든 보안 데스크톱 비밀번호 관리자입니다. 강력한 암호화를 사용하여 로컬에 자격 증명을 저장하고 관리합니다...