Python으로 Google 자동완성 키워드 도구를 만들었습니다 (소스 코드 포함)
Source: Dev.to
왜 구글 자동완성인가?
Google 자동완성은 가장 신뢰할 수 있는 키워드 데이터셋 중 하나입니다.
- 모든 제안은 실제 검색에서 나옵니다
- 사용자 의도를 반영합니다
- 롱테일 쿼리를 일찍 노출합니다
내부적으로 대부분의 SEO 도구는 동일한 엔드포인트를 호출합니다:
https://suggestqueries.google.com/complete/search
KeySage는 직접 연결합니다 — API도 없고 인증도 필요 없습니다.
고수준 아키텍처
KeySage는 백그라운드 스크래핑 스레드를 가진 단일 프로세스 데스크톱 앱입니다.
| 구성 요소 | 기술 |
|---|---|
| UI layer | Tkinter + ttkbootstrap |
| Networking | requests |
| Concurrency | threading + Event flags |
| Data model | set + defaultdict |
| Exports | TXT / CSV / JSON |
목표는 단순함과 해킹 가능성이었습니다.
스크래핑 로직
각 기본 키워드는 구성 가능한 확장 파이프라인을 통과합니다:
- 기본 키워드 입력
- 선택적 앞/뒤에 붙이는 단어
- 문자 확장:
a–z및a–z + 0–9 - Google 자동완성 요청
- 중복 제거
- 실시간 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:
| Option | Price | Description |
|---|---|---|
| Windows EXE | $7 | 즉시 실행, 파이썬 필요 없음 |
| Full Source Code | $10 | 학습, 수정, 확장 |
| EXE + Source | $12 | 두 가지 장점 모두 |
👉 여기에서 KeySage를 받으세요:
왜 소스 코드를 공개하나요?
개발자는 실제 도구를 통해 가장 잘 배웁니다 — 장난감 예제가 아니라. 소스가 있으면 다음을 할 수 있습니다:
- 비동기 요청 추가
- 클러스터링 개선
- 새로운 내보내기 형식 추가
- 다른 제안 소스 통합
- CLI 또는 API로 전환
이 프로젝트는 기반이 되도록 설계되었습니다.
최종 생각
KeySage는 엔터프라이즈 SEO 플랫폼을 대체하려는 것이 아닙니다. 투명하고 해킹이 가능한 키워드 도구이며, 다음으로 구축되었습니다:
- Python
- 일반 라이브러리
- 단순한 아키텍처
- 벤더 종속 없음
실제 환경에서의 스크래핑 + 데스크톱 앱의 실용적인 예시를 원하거나, 실제로 사용할 수 있는 도구를 찾고 있다면, 이것이 바로 당신을 위한 것입니다.
👉 구매 / 다운로드 KeySage: