sublime text 无法直接搭建 seo 分析系统,仅可作为编写和运行 python 脚本的编辑器;需配置 build system 调用含 requests/lxml/pandas 的 python 环境,并处理反爬、数据结构化存储及自动化运维等外部依赖。

Sublime Text 本身不支持直接搭建 SEO 分析系统
Sublime Text 是纯文本编辑器,没有内置网络请求、HTML 解析、数据存储或定时任务能力。所谓“搭建 SEO 关键词分析系统”,实际是指用 Sublime 作为代码编写和调试的前端界面,背后依赖外部脚本(如 Python)完成核心逻辑。如果你试图在 Sublime 里点几下菜单就跑出关键词排名和竞品对比,会卡在 urllib.error.URLError 或 ModuleNotFoundError: No module named 'bs4' 这类错误上。
真正可行的路径是:用 Sublime 编写并快速运行 Python 脚本,调用 requests 抓取搜索结果页、re 或 lxml 提取排名、pandas 对比竞品域名出现频次——所有这些都必须在系统环境里安装并配置好 Python 解释器。
如何让 Sublime 快速运行 SEO 抓取脚本
Sublime 的 Build System 是关键入口。不能只靠 Ctrl+B 默认 Python 构建,因为默认可能指向系统旧版 Python,或缺少 requests 等包。
- 确认终端中
python -c "import requests"不报错;否则先用pip install requests lxml pandas openpyxl - 在 Sublime 中新建 Build System(Tools → Build System → New Build System),粘贴以下内容并保存为
Python3-SEO.sublime-build:
{
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"encoding": "utf-8"
}
注意:"cmd" 中的 python 必须是你装了所需包的那个版本,必要时写成绝对路径,比如 "/usr/local/bin/python3" 或 "C:\Python39\python.exe"。
抓取百度/360/搜狗关键词首页排名的常见坑
直接用 requests.get("https://www.baidu.com/s?wd=xxx") 会返回 403 或空结果——搜索引擎反爬机制已生效。不是 User-Agent 换了就能过,重点在请求头与行为模拟。
- 必须设置
User-Agent和Accept,否则百度返回跳转页(含location: https://www.baidu.com/s?...) - 百度 PC 端结果页 DOM 结构不稳定,
#content_left下的div[class*="result"]才是自然结果,广告位(id="ads")、视频栏、小程序卡等需过滤 - 搜狗对请求频率更敏感,连续请求超过 5 次/分钟大概率触发
HTTP 429;建议加time.sleep(2),别用asyncio并发 - 360 搜索结果页含大量 JS 渲染内容,
requests拿不到真实排名,必须换selenium或找其 API 接口(如https://www.so.com/s?q=xxx&src=home返回的是可解析 HTML)
竞品域名对比需要结构化存储,别硬塞 CSV
每次抓取后若只是把结果 print 出来或写进一个 result.csv,几天后就无法区分哪次是 A 关键词、哪次是 B 竞品、时间戳是否准确。容易导致“数据有,但没法比”。
- 每次运行脚本时生成唯一标识,例如
f"rank_{int(time.time())}_{keyword.replace(' ', '_')}.json" - JSON 结构建议包含:
keyword、engine(baidu/360/sogou)、timestamp、results(列表,每项含rank、url、domain、title) - 对比逻辑放在独立脚本里:读取最近 3 次的 JSON 文件,用
pandas.concat()合并,按domain分组统计进入 TOP10 的次数,再用diff().fillna(0)算升降趋势 - 避免用 Excel 打开大文件——100 个词 × 3 引擎 × 30 天 ≈ 9w 行,CSV 用
pandas.read_csv更稳,Excel 容易乱码或截断
真正的难点不在怎么写第一行 import requests,而在于怎么让每天凌晨自动运行、失败后重试、异常时发邮件提醒、历史数据不互相覆盖——这些 Sublime 做不了,得交给 cron 或 GitHub Actions,Sublime 只负责让你改起代码来顺手一点。











