社区

教程codex

心愿单里那双鞋半夜涨回去那晚,我把盯价这活儿甩给了AI

阿哲

心愿单里那双鞋的价格,我盯了小半年。倒不是多稀罕这双鞋,主要是标价899这个数字,咬得我牙根痒。

某天半夜刷到649,我盯着屏幕犹豫了得有十分钟,起身去刷牙,心想就多赖一会儿这个数字——刷完回来一看,它又涨回899了。

那十分钟,我到现在想起来都觉得亏得慌。

其实吧,我干的是接单的活,一件事翻来覆去做,是我最受不了的。手动盯价掰开讲就是这么点破事:早中晚刷刷购物车,再在几个比价小程序里来回点开,先看它们放三十秒广告。

广告看完,价格通常还是上周那个。

最惨一回是耳机。我盯了大半个月,偏赶上我去客户那边出差,没顾上刷那两天,它悄悄跌到了半年最低,等我回来,已经涨回去80。那种错过感,比多花80块还难受。

后来我干脆撒手不盯了。这么点破事天天占着脑子,不值当,我那点精力还得留着接单挣钱呢。

我用的是Codex。你可以把它当成住你电脑里、不会累的实习程序员,你说需求,它写代码。

第一次我跟它说得挺直白:写个Python脚本,叫watch_price.py,把这双鞋的商品链接甩给它,价格具体藏在网页哪个犄角旮旯让它自己去扒,抓到就跟我设的心理价699对比;低于就在屏幕上喊一嗓子「降价啦」,高于就说「再等等」。用到的库比如requests、beautifulsoup4,装法我让它写在注释里告诉我;顺带补了句我是新手多写中文注释——这句是我接单摸出来的经验,不加这句它写出来的代码跟天书没两样,加了它就老老实实一行行给你标上这里在干嘛。

给脚本起名这个习惯是我接单养出来的(文件不起名,以后想改都不知道该跟谁说话)。

第一次跑,报了个403,红彤彤一片。我还以为自己把人家网站搞挂了。

后来才知道就是网站觉得我像机器人,把我拦了。我确实是机器人,只是不想承认这点。

我把那坨报错原样复制粘贴甩回去,加一句:「报403了,是不是把我当机器人挡了?帮我加个正常浏览器的请求头再试」。它没让我自己去查什么是User-Agent,直接把请求头加好,再跑,通了。

那天晚上我去楼下小卖部买了包烟(戒了三年,别问我为啥又抽了),回来接着折腾。

折腾这事,写代码那部分反倒不算最烦,真正磨人的是配环境。敲个python3 --version确认版本在,装库跑的是pip3 install requests beautifulsoup4,这两行敲完事情才刚开始——版本对不上、路径找不着,这些琐碎调整我就不细数了,试了小一个钟头才顺,过程无聊到我自己都懒得回忆,中间还去阳台站了会儿吹风,回来接着弄。

跑通那一刻,屏幕上打出「还没到价,当前899,再等等」,我盯着这行字愣了两秒。机器刚替我去网上看了一眼价格,这事往后就不用我亲自干了。

光会跑还算不上「盯梢」,顶多是我想起来点一下、它才动弹一下。我让它接着办:能不能自己每隔一小时跑一次,不用我手动敲命令,我用的是Mac,让它一步步教我,命令给能直接复制的那种。它给了两个法子,一个是cron(系统自带的定时器,那一行配置我看着就头大),另一个更偷懒——让脚本自己在里头写个死循环,跑完睡一小时再跑一遍,我让这个脚本开着别关。我选了后者,单纯因为看得见它在动,心里踏实。

光盯一双鞋不够本,我心愿单里还躺着机械键盘、耳机、显卡这几样,顺带我还想让它跌破了直接弹我手机,别只打印在屏幕上。我先搭了张表存成wishlist.csv,就仨列:名称、链接、心理价,以后想加哪件商品就往表里添一行,代码一个字不用碰。我把这堆需求一次性甩过去:从这张表里读名称、链接、心理价这三列,抓失败别把整个脚本搞崩,跳过去接着抓下一个,跌破的排到报告最上面,别让我在一堆数字里大海捞针,两次抓取之间停顿几秒别把网站惯的请求太猛(这条是403那次学乖的),跌破了就顺手往手机推一条。

第一次看到一张表把五六件东西的价格一次性列出来,那种我一个人管了一个盯价小组的感觉,是真上头。

桌上那盏台灯这几天总闪,修了两次没修好,我一直没顾上换,现在还在闪。

同一套框架我后来顺手挪去干别的。有个做电商的老客户托我盯他家几个竞品的价格,我把链接换成竞品链接,把「低于多少提醒我」换成「他家一降价我要立刻知道」,代码一个字没动。

这活儿听着是摸鱼,只不过甲方给的钱够。

多提一句成本,免得你以为这事得靠氪金:头两周我一分钱没花,免费额度够用;后来充了点钱,纯粹是我盯的东西越滚越多、问它的次数也多了,跟盯价这活儿本身没啥关系,脚本写好之后,盯一个还是盯十个,不额外花钱。

有朋友知道这事,问我这算不算作弊,毕竟代码不是我一行行敲出来的。我琢磨了半天,大意是需求提得够细,活儿才派得明白。这道理我讲给朋友听,他将信将疑,反正没再追问。

报告打在屏幕上,人不守着就白搭。推送这事拆开也不复杂,就是给脚本找个专属信箱地址,行话叫Webhook,把消息塞进去,手机就能收到。我图省事用的钉钉群机器人:随手拉了个只有我自己的群,进群设置翻到「智能群助手」,添加机器人选自定义,安全设置那栏非要填个关键词,我填了「降价」,意思是往后消息里必须带这两个字才发得出去,不然直接被吞。弄完它甩给我一串地址,我把这串东西当宝贝存起来,没往外发过。

跟它说:跌破心理价就往这个地址发消息,带上商品名、当前价、心理价、链接,同一个商品已经提醒过的价位、没继续跌就别反复刷屏;没跌破的别烦我。这一步我学乖了一回:没直接把推送焊进盯价逻辑里,先让它单写个巴掌大的脚本,就干一件事——往这串地址发一条「这是测试消息,降价」,确认手机上真能收到,再把这玩意儿接进正式流程,省得回头出问题,我分不清到底是价没抓着还是消息压根没发出去。

抓取频率我设的一小时一次,跟一个人没事刷新页面没什么区别,没敢往死里薅人家服务器。

第一条测试消息在手机上叮地弹出来那下,我正在给客户改一版海报,顺手瞄了眼手机,差点没绷住笑出声。这是我自己养的机器人头一回开口说话。

客户问我笑什么,我说没事,自己的破事。那张海报后来来回改了三版,跟这机器人一点关系没有。

推送通了没多久,我就撞上了商家那套先涨后降的把戏。它提醒我「降价啦,879」,我一查,这玩意儿上个月才799,所谓的降,是从虚高价往下挪了两块,被套路了。

我又跟它说,拿最近半个月的中位数当参照,别拿临时抬高的那个高点当参照——原话大概是「就拿最近十四天的常态价当基准,明显低于这个才算真降,要是那种降了但还高于平时水平的,消息里给我备注一句疑似先涨后降、谨慎」。顺带让它把每次抓到的价格都存一份叫price_history.csv的历史表,我没细跟它抠中位数还是平均数这种算法细节,就说了句「我要的是平时的常态价」,剩下的它自己琢磨——后来才知道它用的是中位数,理由是平均数容易被一两个极端价格带偏,这个倒是它想得比我周全。

折腾到这份上,我一度觉得这机器人已经挺懂事了。

直到凌晨三点,某个商品价格抖了一下,跌了1块钱,它叮一声把我吵醒。

我半梦半醒摸手机,心想终于到位了——一看,1块钱,人还在被窝里骂了一句脏话。

第二天我加了免打扰时段和防抖动:晚上十一点到早上八点不推,涨跌不到1%不算数。我还顺手让它加了道口子:抓到的价格要是0块钱,或者比上次腰斩还多,先别当真,那八成是网站抽风返回了脏数据,先记一笔日志等我自己来看,别急着报喜。这几条我加了,但至今没敢彻底信它,上周还半夜响过一回,我懒得查是不是又抽风了,先把推送关了睡觉再说。

现在心愿单上那双鞋还挂着,机器人每天替我看一眼。上周它又报了一次809,我心里门儿清那八成还是先涨后降那套,懒得细查,就那么放着,没删也没关。

这几句是我原封不动跟它说的,抄去把商品名、链接、心理价换成你自己那摊子事就能用。

  • 起项目库:「写个Python脚本,叫watch_price.py,把商品链接甩给它,价格藏在网页哪个犄角旮旯让它自己去扒,抓到就跟我设的心理价对比;低于就喊一嗓子「降价啦」,高于就说「再等等」。用到的库比如requests、beautifulsoup4,装法写在注释里告诉我;我是新手,多写中文注释。」
  • 修403:「报403了,是不是把我当机器人挡了?帮我加个正常浏览器的请求头再试。」
  • 自动定时跑:「能不能自己每隔一小时跑一次,不用我手动敲命令,我用的是Mac,让它一步步教我,命令给能直接复制的那种。」
  • 批量盯多件:「从这张表里读名称、链接、心理价这三列,抓失败别把整个脚本搞崩,跳过去接着抓下一个,跌破的排到报告最上面,两次抓取之间停顿几秒别把网站惯的请求太猛,跌破了就顺手往手机推一条。」
  • 推手机通知:「跌破心理价就往这个地址发消息,带上商品名、当前价、心理价、链接,同一个商品已经提醒过的价位、没继续跌就别反复刷屏;没跌破的别烦我。」
  • 防先涨后降:「就拿最近十四天的常态价当基准,明显低于这个才算真降,要是那种降了但还高于平时水平的,消息里给我备注一句疑似先涨后降、谨慎。」

别信我们的,你自己试试

花 ¥10,看 Codex / Claude 真帮你做件事——把一件重复的活自动化、做个能用的小网页,或写个小工具,一个真任务绰绰有余。

3 天有效 · 含 2 张配图 · 一把 key,Claude 和 Codex 都能用

¥10 试试看 →

新文章第一时间发到你邮箱

新教程、实战笔记,偶尔聊聊产品更新。不发垃圾,随时退订。