电脑屏幕上同时开着五个终端窗口,Python脚本的日志像瀑布一样往下刷。左边是Charles抓包工具,右边是XMind思维导图,里面画着我自己都看不懂的复杂流程。桌上还摊着两本翻烂了的《Python高级编程》和《SEO实战密码》。这是2017年3月一个普通的深夜,我32岁,坐在深圳宝安区租来的公寓里,感觉自己是全世界最高效的人。
至少在今天晚上之前,我都是这么坚信的。
事情是这样的。上周我发现某个竞争对手网站的防爬策略升级了,他们开始用动态加载,还加了很复杂的请求头验证。这简直是在向我宣战。我花了整整三天,研究怎么用Selenium配合PhantomJS去模拟真实用户行为,又折腾了两天去破解他们那个该死的反爬虫JavaScript混淆代码。今天,我终于把新的爬虫部署上线了,效率比之前提升了40%,能多抓将近五万条数据一天。
我点了根烟,看着日志里不断跳出的“Successfully fetched”字样,心里那股成就感简直要溢出来。我甚至已经开始盘算,要不要把这个爬虫框架封装一下,做成个开源项目,名字我都想好了,就叫“SpiderMaster”。
然后我打开了数据库管理工具。
我看着那个不断增长的数字,突然愣住了。上个月抓的两百万条数据,真正用上的有多少?我切到分析后台,调出了最近三十天的数据看板。那些我费尽心思抓来的商品详情、用户评论、价格历史……80%以上的字段根本就没被下游的SEO内容生成脚本调用过。我引以为豪的那个“智能去重算法”,每天在服务器上跑两个小时,其实只是在处理大量根本不会产生价值的重复信息。
我优化爬虫性能,到底是为了什么?
为了抓更多数据。抓更多数据是为了什么?为了做更全面的分析。做更全面的分析是为了什么?……为了证明我的爬虫很厉害?
操。
那一瞬间,后背有点发凉。我关掉了所有闪烁的窗口,房间里只剩下显示器的微光和空调低沉的嗡鸣。我走到窗边,楼下便利店还亮着灯,偶尔有晚归的车灯划过街道。深圳的夜晚从来不真正沉睡,就像我脑子里那些停不下来的技术执念。
我们这种人太容易掉进“效率陷阱”了。帕累托法则明明说了,80%的结果来自20%的投入。可我们偏偏要把100%的精力,投入到那些只能产生20%价值甚至更少的“技术细节”里。为什么?因为搞技术是舒服区。面对代码和协议,一切都有明确的规则,解决了就是解决了,那种即时反馈的成就感太容易上瘾。而思考“抓这些数据到底能不能变现”、“用户到底需不需要这个功能”、“市场到底认不认可”,这些问题太模糊,太痛苦,充满了不确定性。
所以我们就用战术上的勤奋,来掩盖战略上的懒惰。美其名曰“工匠精神”,其实就是在逃避真正的商业战场。
我回到电脑前,打开了一个空白文档。最上面写了一行字:2017年Q2核心目标。然后我删掉了之前写的“优化爬虫架构”、“研究分布式抓取”这些屁话。我重新写:
第一,明确核心交付物。不是数据量,不是爬虫性能指标,而是通过SEO带来的有效流量,以及流量转化后的广告收入。所有技术动作,必须能直接映射到这两个指标上。
第二,应用OKR思路。O:季度广告收入提升50%。KR1:找到当前转化率最高的3个数据维度,并确保其抓取成功率>99%。KR2:砍掉所有对核心交付物贡献低于5%的抓取任务和清洗流程。
第三,每周复盘一次。问自己一个问题:我这周写的代码,做的“优化”,有多少比例是直接服务于“搞钱”这个最终目的的?
写完之后,我看着屏幕发呆。感觉像是给自己做了一场手术,把那些华而不实的技术虚荣心一块块切掉了。有点疼,但更多的是清醒。
工具永远只是工具。爬虫再快,SEO脚本再智能,思维导图画得再漂亮,如果它们没有指向一个清晰的商业终点,那就只是在制造精致的废墟。我们总在抱怨“为什么我技术这么牛却赚不到钱”,也许答案很简单——你根本就没在解决赚钱的问题,你只是在解决自己对于“技术牛”这个幻觉的饥渴。
窗外的天色开始有点泛灰了。新的一天又要开始了。
这次,得换个活法。














