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.pngwa_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 入口;想要点击数据再叠加一层短链统计即可。核心就一句:让每个渠道的入口可区分,投放才有据可依。

相关推荐
郝学胜-神的一滴11 小时前
Effective Python 条款 10 :海象运算符_=
开发语言·python·程序人生·开源
wuyk55511 小时前
Python零基础入门第十四章:异常处理(try-except)
开发语言·python
2601_9620781911 小时前
Appium+Python+pytest自动化测试框架详解
自动化测试·python·appium·pytest·移动应用
wuyk55512 小时前
【Socket 进阶之路】第 3 章 TCP 三次握手 & 四次挥手深度剖析|连接建立、断开、状态机、TIME_WAIT 核心工程问题
服务器·开发语言·网络·物联网·网络协议·tcp/ip
卷无止境15 小时前
智能体开发环境ADE浅析,编程工具的下一次范式跃迁
后端·python
平头哥AI17 小时前
Day 22 _ 包装错误别丢链_%w、errors.Is 与 errors.As
android·服务器·学习·golang·go
传奇开心果编程18 小时前
【Xilem 0.4 基础语法学与练】第15课:状态管理与 memoize 性能优化
学习·rust·前端框架
新时代牛马19 小时前
PCI与PCIe 硬件原理、配置空间/BAR 与 Linux 驱动完整篇:从 LTSSM、TLP 到 ECAM 与probe
java·linux·服务器
2601_9623008119 小时前
机器学习贴士:使用Python编写MapReduce
hadoop·python·机器学习·mapreduce·数据处理