如何用 Python 自动生成 100 种低卡晚餐食谱

删掉第17条私信,内容是“手把手教你用Python月入五万,小白三天上手”。这玩意儿现在比病毒还多。疫情把所有人都困在家里,副业培训的镰刀就磨得锃亮,好像敲几行代码就能自动印钞。我盯着屏幕右下角那个爬虫脚本,它正卡在某个美食网站的验证码上,已经重试了八次。这才是现实——没有底层逻辑,你连一张菜谱图片都扒不下来,谈什么自动化生成一百种。

所谓的“自动生成”,听起来很AI,其实底层全是脏活。你得先有数据,大量的、干净的、结构化的数据。那些培训课不会告诉你,大部分中文食谱网站根本没有开放的API,HTML结构乱七八糟,class名全是拼音缩写,一张完整的菜谱可能分散在五个div里,中间还插着弹窗广告和“下载APP看更多”的按钮。我的脚本得用BeautifulSoup去硬解析DOM树,用正则表达式从大段描述文本里抠出“热量”、“克数”这些关键数字。这还只是第一步。

第二步是清洗。扒下来的数据像一盆混了沙子的糙米。“少许”、“适量”、“一勺”这种中餐特有的模糊单位,对机器来说就是垃圾。你得建映射表:“一勺”约等于“15克”,“少许”在热量计算里直接忽略。更恶心的是,很多菜谱的热量值是编辑随手填的,或者根本没有。我需要用营养成分表去反推,根据肉类、蔬菜、油脂的配比估算一个大卡范围。这里涉及另一个爬虫,去爬食物成分数据库的API,还要处理频率限制,用time.sleep随机延时,模拟真人操作,不然IP分分钟被封。

第三步,所谓的“生成”逻辑。现在手里有几万条清洗过的菜谱条目,每条都有食材、重量、估算热量。生成新菜谱不是魔法,是排列组合与约束求解。核心算法是:给定一个热量上限(比如400大卡),从食材池里选取蛋白质、碳水、蔬菜、脂肪来源,计算总热量,同时考虑食材搭配的合理性(比如西红柿和鸡蛋是常见组合,西红柿和巧克力就不是)。这里用上了pandas做数据筛选,用random.sample做随机抽取,但随机里必须有规则——不能连续生成三个都是“鸡胸肉+西兰花”的搭配,那叫食谱吗?那叫饲料。

那些鼓吹“三天上手”的课程,会带你走到这一步吗?不会。他们只给你看最后那个光鲜的、能输出漂亮PDF的GUI界面。他们不会告诉你,为了处理一个网站突然把div class从“cailiao”改成“material”,你可能要熬夜重写解析函数。他们更不会说,所谓的“自动发布到社交媒体”,需要你去研究平台的反爬策略,模拟登录,处理滑块验证码,一个不小心账号就被限流。所有看起来“自动”的暴利背后,都是对某个系统底层规则(代码的、算法的、甚至平台运营人力的)的深刻理解和破解。你不掌握这个,你就是被收割的那个——花钱买了把看似锋利的镰刀,结果发现连韭菜根都割不动。

窗外的城市比往常安静,但微信群和知识付费平台比任何时候都喧嚣。又一个私信弹出来:“老师,我想学那个自动生成食谱的,能直接卖钱吗?”我回都没回,直接删掉。脚本终于跳过了那个验证码,继续吭哧吭哧地抓取着。真正的“自动化”,是深夜里和这些枯燥、顽固、不断变化的数字系统搏斗,直到你摸清它的每一处关节和弱点。这不是副业,这是主业。是手艺。

© 版权声明
THE END
喜欢就支持一下吧
点赞72 分享