我用 Python 构建了一个 Google 自动完成关键词工具(附源代码)

发布: (2026年1月8日 GMT+8 20:44)
5 min read
原文: Dev.to

Source: Dev.to

请提供您想要翻译的完整文本(除代码块和 URL 之外),我将按照要求保持原有的 Markdown 格式并将内容翻译成简体中文。

为什么使用 Google 自动完成?

Google 自动完成是最诚实的关键词数据集之一。

  • 每个建议都来自真实搜索
  • 它反映用户意图
  • 它提前展示长尾查询

在内部,大多数 SEO 工具调用相同的端点:

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

KeySage 直接连接它 —— 无需 API,无需身份验证。

高级架构

KeySage 是一个单进程桌面应用,带有后台抓取线程。

组件技术
UI 层Tkinter + ttkbootstrap
网络requests
并发threading + Event 标志
数据模型set + defaultdict
导出TXT / 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() 流式返回到 UI,以保持 Tkinter 线程安全。

在不冻结 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,但不丑

界面使用 ttkbootstrap 来避免默认的 Tkinter 外观。

特性:

  • 响应式布局
  • 主题化小部件
  • 可折叠的高级设置
  • 实时滚动输出
  • 内置帮助窗口

它是故意保持极简——不使用 Electron,也不使用 Web 堆栈。

EXE 与 源代码

提供以下三种选项:

选项价格描述
Windows EXE$7立即运行,无需 Python
Full Source Code$10学习、修改、扩展
EXE + Source$12两者兼顾

👉 在此获取 KeySage:

为什么要发布源代码?

开发者最擅长从真实工具中学习——而不是玩具示例。有了源码,你可以:

  • 添加异步请求
  • 改进聚类
  • 添加新的导出格式
  • 集成其他建议来源
  • 将其转化为 CLI 或 API

该项目旨在作为基础。

最后思考

KeySage 并不打算取代企业级 SEO 平台。它是一个透明、可 hack 的关键词工具,使用以下技术构建:

  • Python
  • 常用库
  • 简单的架构
  • 无供应商锁定

如果你想要一个实际的真实世界爬取 + 桌面应用示例,或是一个你真的能用的工具——这就是为你准备的。

👉 购买 / 下载 KeySage:

Back to Blog

相关文章

阅读更多 »

构建安全的密码管理器

概述 本项目是一个使用 Python 和 Tkinter 构建的安全桌面密码管理器。它在本地存储和管理凭证,采用强加密和……