# 开源初体验,39 天 800 Star:我把项目发到了哪里,流量到底从哪来

开源初体验,39 天 800 Star:我把项目发到了哪里,流量到底从哪来

7 月 19 日晚上,boss-zhipin-scraper 过了 800 Star。

这是我第一次认真做开源项目。仓库 6 月 11 日公开,从 0 到 100 Star 用了 26 天,从 100 到 800 反而只用了 12 天。增长不是一条平滑的曲线,中间有几个很明显的台阶。

所以这篇不讲「只要坚持就会有结果」。我把自己发过的渠道、GitHub 后台能看到的流量、Star 增长时间线都摊开,看看这 800 Star 到底是怎么来的。

先说明一下数据口径:GitHub Traffic 只保留近 14 天的数据。本文的流量区间是 7 月 5 日到 7 月 18 日;Star 时间来自 GitHub Stargazers API,是完整数据。两者不能直接画等号,只能结合时间点看趋势。

我做了什么

这个项目的起因很普通:我最近在看机会,天天刷 BOSS直聘。刷多了以后就想,能不能把同一类岗位批量拉下来,看看薪资、技能词和城市分布,而不是在列表页里一条条点。

BOSS直聘列表页有字体反爬,直接抓 DOM,薪资很容易变成乱码。我的做法是连接一个用户自己登录的 Chrome,通过 CDP 在页面上下文里调用搜索接口,拿到包含明文薪资的结构化数据,再抓详情页 JD。结果可以导出 JSON、CSV,也能生成岗位摘要和求职材料优化提示词。

它不是自动投简历工具,也不替人做投递决定。BOSS 的招聘方有不少不会写进公开 JD 的筛选条件,盲目自动投递很容易浪费机会。我的边界一直是抓取和分析,最后怎么投,还是人来判断。

我主动发过哪些渠道

回头看,我真正主动做的主要是四件事。

1. 先写自己的博客

6 月 11 日,我在个人博客发了第一篇项目介绍:我做了一个 BOSS直聘抓取工具,开源了。6 月 25 日又写了一篇后续,讲岗位摘要和提示词为什么这样设计。

博客的直接流量不大。近 14 天,它给 GitHub 带来了 37 次访问、22 位独立访客。但它是我能长期控制的内容,也会被搜索引擎和 RSS 聚合站收录。后来 V2EX 的 VXNA 就抓到了这两篇文章。

它更像底稿。后面发知乎、给周刊投稿,内容都不用从零重写。

2. 发知乎

6 月 15 日,我把项目介绍整理成知乎文章:我做了一个 BOSS直聘抓取 SKILL,开源了。目前是 22 个赞同、55 个收藏。

这组数字挺符合工具类内容的特点:收藏比点赞多。很多人不一定马上安装,但会先存着,等找工作或者要分析岗位时再回来。

在 GitHub 最近 14 天的来源里,知乎带来了 123 次访问、50 位独立访客。它没有制造某一天的陡增,但一个月后还在持续导流。

3. 给阮一峰周刊投稿

6 月 16 日,我去 ruanyf/weekly 提了一个自荐 Issue。当时仓库只有十来个 Star,投稿以后也很久没有动静。

24 天后,项目出现在 7 月 10 日发布的《科技爱好者周刊》第 403 期「工具」栏目里。

当天 GitHub 数据直接抬头:

  • 单日 1,348 次浏览、985 位独立访客;
  • 单日新增 278 Star,项目从前一天结束时的 208 Star 涨到 486;
  • 单日 136 次 clone,其中 121 位独立 cloner。

近 14 天里,ruanyifeng.com 一共带来 1,192 次访问、896 位独立访客,是最大的外部来源。

严格说,我不能断言当天新增的 278 Star 全来自周刊。GitHub 不提供「某个来源转化了多少 Star」这种归因数据。但发布日期、访问峰值和 Star 峰值落在同一天,关系已经很明显。

这次也让我意识到,投稿不能等项目「完全准备好」。如果我到 7 月初才投,就赶不上这一期了。编辑和社区都有自己的节奏,提前把东西送出去,剩下的只能等。

4. 发 Linux.do

7 月 8 日,我在 Linux.do 发了开源自荐帖。目前帖子有 96 个赞、31 条回复、约 1,200 次浏览。

GitHub 后台里,Linux.do 近 14 天带来了 468 次访问、306 位独立访客。发帖当天项目新增 73 Star,是周刊收录前最明显的一次增长。

社区和周刊带来的东西不太一样。周刊覆盖面大,访问峰值高;社区的反馈更具体。有人问会不会封号,有人想要自动投递,也有人真的拉下来跑,然后回来报详情页、Chrome 焦点和风控码的问题。

这些回复后来进了 Issue,也改了项目本身。

800 Star 是怎么涨出来的

几个节点放在一起看,会更直观:

时间 发生了什么 Star 变化
6 月 11 日 仓库公开,个人博客发文 当天 2 个
7 月 7 日 到达 100 Star 前 100 用了 26 天
7 月 8 日 Linux.do 发帖 当天新增 73 个
7 月 9 日 到达 200 Star 结束时 208 个
7 月 10 日 被阮一峰周刊收录 当天新增 278 个,结束时 486 个
7 月 11 日 到达 500 Star 从 200 到 500 约两天
7 月 19 日 到达 800 Star 距仓库公开 39 天

最慢的是前 100 个。6 月 11 日到 7 月 2 日,整个项目只有 45 个 Star。7 月 3 日开始才有一点连续增长,真正的台阶出现在 Linux.do 和周刊。

但这也不是「找到一个大渠道,一切就结束了」。周刊带来峰值以后,7 月 13 日又新增 75 Star,后面几天每天还有二三十个。GitHub 站内、搜索和别人转发带来的长尾开始出现。

近 14 天的来源里,GitHub 站内有 1,445 次访问、801 位独立访客,比任何单一外部网站都多。Google 和 Bing 合计带来 136 次访问,NodeSeek、腾讯云、Inoreader 也有少量流量。我还在 Telegram 频道里看到了项目转发。

后面这些并不都是我主动投的。有些是转载,有些是 RSS,有些可能只是别人在讨论区贴了链接。项目有第一波可见度以后,传播开始脱离作者本人。

近 14 天,GitHub 后台是什么样

7 月 5 日到 7 月 18 日,仓库数据是:

  • 5,192 次页面浏览,2,939 位独立访客;
  • 1,034 次 clone,762 位独立 cloner;
  • 当前 804 Star、111 Fork。

粗略看,独立 cloner 相当于独立访客的 26%。这个比例不能当成严格的转化率,GitHub 对两类 unique 的统计方式未必完全一致,但至少说明很多人不是看完 README 点个 Star 就走,确实有人把代码拉了下来。

热门页面也能看出一点东西:仓库首页有 3,877 次浏览,Issues 页面有 323 次,核心脚本有 93 次,Fork 页面有 75 次。有人看文档,有人翻问题,也有人直接看那份 2,400 多行的核心 Python 文件。

对我来说,clone、Issue 和外部 PR 比 Star 更能说明项目有没有被用起来。

第一次做开源以后,我才知道哪些地方花时间

截至 7 月 20 日,项目有 42 次提交、17 个 Issue,其中 15 个已经关闭;17 个 PR 全部合并,贡献者一共 3 位。

第一个外部 PR 出现在仓库公开后的第六天,修的是 --detail-output 传裸文件名会报错。后面又有人贡献了详情页正文清理、后台标签页处理。还有一些反馈没有直接交代码,但问题描述足够具体,我照着修了。

流量起来以后,实际花时间最多的是处理 Issue。7 月 10 日以后,用户陆续碰到这些问题:详情页标签抢前台焦点、页面在后台被判定为不可见、城市支持范围没写清楚、Chrome 抓完没有收尾、风控 code 37 被误判成没登录。

这些都不是最初自己跑一遍就能发现的。不同系统、不同 Chrome 状态、不同账号风控环境,会把隐藏的问题一个个翻出来。

README 也比我原来想的重要。7 月初我补了英文版、SEO 关键词、封面图、免责声明和 Star History。它们不会凭空带来流量,但外部链接把人送进仓库以后,首页要能在半分钟内回答几个问题:这是干什么的,怎么装,安不安全,出了问题去哪里看。

代码能跑,只解决了一半。

哪些渠道值得继续做

如果只看这一次的数据,我会把渠道分成三类。

个人博客和知乎适合放完整内容。它们的瞬时流量一般,但能被搜索,过一段时间还有人点进来。

Linux.do 这样的垂直社区适合找第一批真实用户。大家会问得很细,反馈也快。发社区之前,安装步骤、项目边界和免责声明最好先写完整,不然问题一多,作者自己先忙乱。

阮一峰周刊属于编辑筛选型渠道。它的爆发力最大,也最不可控。能做的是尽早投稿,把标题和介绍写清楚,然后继续维护项目,不要每天等结果。

我没有找到什么神奇的「开源冷启动公式」。这次比较有效的做法其实很朴素:先解决自己真的遇到的问题,写一篇能看懂的介绍,把项目送到对这件事有兴趣的人面前。之后能不能被更大的渠道看见,有运气,也有时间差。

如果重来一次,我会更早做两件事:每天保存一份 Traffic 数据,因为 GitHub 只保留 14 天;给不同渠道用可区分的链接,不然最后只能根据峰值猜来源。

仓库现在还有两个开放 Issue。一个是 Windows 环境下的风控问题,一个是 Web 版本的建议。800 Star 很开心,但项目接下来怎么样,还是得回到这些具体问题上。

项目地址:github.com/eatmoreduck...

相关推荐
雪隐18 小时前
个人电脑玩AI-10让5060 Ti给你打工——我让 Claude Code 喝上了本地杂粮:Ternary-Bonsai-27B 部署历险记
前端·人工智能·后端
云上小朱18 小时前
Intel SGX相关软件部署
后端
Reart18 小时前
Leetcode 1143.最长公共子序列(720)
后端·算法
掘金者阿豪18 小时前
一条SQL能执行成功,不代表它真的安全:一次生产环境数据库迁移事故复盘
后端
Reart19 小时前
Leetcode 718.最长重复子数组(720)
后端
云上小朱19 小时前
软件更新-openssh和openssl-centos
后端
Conan在掘金19 小时前
鸿蒙 ArkUI 深水区:Navigation 多级路由,从「拼页面」到「搭应用」的分水岭
后端
千纸鹤安安19 小时前
如何看待 Go 1.18 引入的泛型?对 Go 开发者来说是必须掌握的吗?
后端