Python 实战:批量生成带来源参数的 WhatsApp 短链 + 二维码

做跨境、跑独立站或运营多个社媒矩阵时,一个常见需求是:给每个投放渠道(Facebook / Instagram / 邮件 / 官网)生成一条独立的 WhatsApp 联系入口,并且能区分客户到底从哪个渠道来。

本文用一个完整可跑的 Python 脚本,演示如何批量生成"带来源参数的 WhatsApp 链接"并导出成二维码图片,全部基于官方 wa.me 深度链接,不依赖任何第三方账号。

一、原理:wa.me 深度链接 + 来源参数

WhatsApp 官方深度链接格式:

复制代码
https://wa.me/<手机号(带国家码,无+和空格)>?text=<预填消息>

要在链接里携带渠道来源,有两种思路:

  1. 把来源写进 text :客户发来的第一条消息自带 [来自FB广告],你一眼能分辨。
  2. 用独立短链 / 二维码 + 点击统计:每个渠道一张图、一条链接,后台看点击和对话数。

下面脚本实现第一种(自包含、零依赖账号),并在文末说明如何升级成第二种。

二、完整代码

python 复制代码
# pip install qrcode[pil]
import urllib.parse
import qrcode
from pathlib import Path

WA_NUMBER = "8613800000000"  # 你的 WhatsApp 号码,带国家码,不要 + 和空格
OUTPUT_DIR = Path("wa_qrcodes")
OUTPUT_DIR.mkdir(exist_ok=True)

# 渠道配置:名字 -> 预填话术前缀
CHANNELS = {
    "facebook":  "我想咨询,来自FB广告",
    "instagram": "我想咨询,来自IG主页",
    "email":     "我想咨询,来自邮件",
    "website":   "我想咨询,来自官网",
}

def build_wa_link(channel: str, preset: str) -> str:
    text = urllib.parse.quote(preset)
    return f"https://wa.me/{WA_NUMBER}?text={text}"

def make_qr(link: str, name: str):
    img = qrcode.make(link)
    path = OUTPUT_DIR / f"wa_{name}.png"
    img.save(path)
    return path

if __name__ == "__main__":
    for name, preset in CHANNELS.items():
        link = build_wa_link(name, preset)
        path = make_qr(link, name)
        print(f"[{name}] {link}\n  -> QR: {path}\n")

运行后,wa_qrcodes/ 目录下会生成 wa_facebook.png、wa_instagram.png 等四张二维码,分别投放到对应渠道即可。客户扫码后,会话里自动带上"来自XX"前缀,你可以直接在 WhatsApp 里按来源归类客户。

三、进阶:把来源做成可统计的短链

上面的方案靠 text 前缀区分来源,但拿不到"每个渠道点了多少次"。要做到点击统计 + 后台看板,有两种路:

  • 自搭 :用 Nginx / Cloudflare Worker 做一层 302 跳转,记录来访 referer 和渠道参数,再跳到 wa.me;数据落库即可出报表。
  • 用现成服务:不少 SaaS 支持"按渠道生成品牌短链 + 二维码 + 点击分析",例如 WALink(免费)就能一站式生成带统计的 WhatsApp 短链和二维码,省去自己维护跳转服务的成本。按团队需要选,小体量用脚本够用,矩阵化运营再上服务。

四、注意事项

  1. wa.me 号码必须是带国家码、去掉 + 和空格 的数字,例如中国号 13800000000 写成 8613800000000。
  2. text 必须 URL 编码(脚本里已用 urllib.parse.quote 处理中文)。
  3. 不要把二维码堆在违规场景(如平台私信硬广),否则可能被限流。
  4. 预填话术别太长,移动端体验更好。

小结

用十来行 Python,就能给每个渠道生成独立、可溯源的 WhatsApp 入口;想要点击数据再叠加一层短链统计即可。核心就一句:让每个渠道的入口可区分,投放才有据可依。

相关推荐
LOVE️YOU3 小时前
Python 中 Tuple 为什么有时可 Hash,有时不可 Hash?
开发语言·python·哈希算法
木卫二号Coding3 小时前
推荐Linux统计文件大小并操作删除工具-ncdu
linux·运维·服务器
小oo呆3 小时前
【学习心得】迭代器和可迭代对象
开发语言·python
gb42152873 小时前
向量数据库多模态特性
数据库
AC赳赳老秦3 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险
java·开发语言·c++·python·php·deepseek·openclaw
迅猛龙办公室3 小时前
Python输出当前计算机的系统日期和时间
开发语言·前端·python
泡海椒3 小时前
数据占比展示:jquick-pdf饼图动态数据渲染PDF教程
数据库·oracle·pdf
大连好光景4 小时前
向量数据库的工作流程详解
数据库·milvus
catchadmin4 小时前
用 Jev 与 Laravel AI SDK 检测垃圾邮件和自动回复
数据库·人工智能·laravel
吠品5 小时前
CSS图片模糊过渡:一个transition加filter就够
java·数据库·notepad++