使用 Python 自动化 WhatsApp 消息

17 Mar 2025 | 4 分钟阅读

我们可以更新 Google 日历上的每个人的生日,并打开通知。但是,如果有一个应用程序可以在我们完全不干预的情况下发送生日祝福呢?这一切都关乎自动化,让我们利用 Python 庞大的库和选项来实现这一点。

本教程将解释如何使用 Python 的 'pywhatkit 库' 在个人和群聊中自动化发送 WhatsApp 消息。

Python 有很多库。要获得我们想要的功能,我们可以选择不同的选项/库,并根据我们开发的项目的一些需求来选择其中一个。要获得 WhatsApp 消息自动化功能,以下是一些选项:

  1. 浏览器自动化 (selenium 库)
  2. Pywhatkit 库
  3. Pyautogui 库

在本教程中,我们将尝试使用 Pywhatkit 库来自动化消息发送。

使用 Pywhatkit 库

Pywhatkit 是一个内置的 Python 库。它提供了以下功能:

  1. 在特定时间发送自动化的 WhatsApp 消息。
  2. 播放 YouTube 视频
  3. 进行 Google 搜索或收集特定主题的信息。

安装库

该库易于使用,但如果您同时处理其他项目,建议创建一个新的虚拟环境,因为该库有许多依赖项。

创建新的虚拟环境

通常,开发人员在同时处理不同项目时会使用单独的虚拟环境,以使项目隔离,避免依赖项冲突。

请按照以下步骤为您的 WhatsApp 项目创建一个新的 Python 虚拟环境:

1. 从开始菜单打开命令提示符 (cmd)。

2. 使用命令

以更改目录到您希望文件所在的文件夹。

例如:cd Desktop

3. 现在,输入命令

注意:如果您使用的是最新版本的 Python,请使用 py 而不是 python3。

Automate a WhatsApp message using Python

4. 该命令将创建一个名为 specified (在此为 Whatsapp) 的独立虚拟环境。

5. 使用命令

mac os

适用于 Windows

来使用/激活创建的虚拟环境。

Automate a WhatsApp message using Python

安装库

现在,项目已经设置了一个独立的虚拟环境,是时候安装库了。只需输入命令:

这会安装所有库模块,所以需要一些时间。要检查库中安装的所有依赖项:使用命令


Automate a WhatsApp message using Python

WhatsApp Web

在您的笔记本电脑/计算机上使用 WhatsApp Web 或 WhatsApp Beta 来打开 WhatsApp。

如果您不了解 WhatsApp Web:

  1. 打开您的浏览器并搜索 WhatsApp Web。
  2. 打开官方链接。
  3. 拿出您的手机,打开 WhatsApp,点击右上角三个点,然后选择“已连接的设备”。
  4. 选择“连接设备”,然后用手机上打开的扫描器扫描您 PC/笔记本电脑上的二维码。
  5. 现在您的 WhatsApp 可以在您的系统上访问了。这就是所谓的 WhatsApp Web 功能。

现在我们将学习如何向个人联系人和群组发送 WhatsApp 消息。

个人联系人

首先,使用 import 语句导入已安装的库:

我们需要使用 .sendwhatmsg() 方法来实现此功能。

语法

这里有一个例子

Automate a WhatsApp message using Python

正如您所观察到的,消息会显示 Python 打开 WhatsApp 并向给定联系人号码发送消息的秒数。

以下是一些要点:

  1. () 函数接受 24 小时格式的输入时间。例如:19:35 -> 晚上 7:35。
  2. 发送消息的时间必须比当前时间至少晚 2 到 3 分钟。如果您设置的时间少于此,模块会引发错误,因为它至少需要 2 秒来打开 WhatsApp Web。
  3. 如果您还没有升级 pip 版本,请先升级,然后再安装库。
  4. 在指定分钟数时,避免使用前导零。例如:对于 6:02 -> 18:02 会引发语法错误。要么使用 18:2,要么使用除 0 以外的其他数字。
  5. 不要忘记包含电话号码的国家代码。如果未提及,将引发异常。

群组

我们已经学会了如何向个人联系人发送消息。向群组发送消息与向单人发送消息没有区别。这里唯一不同的是,要向群组发送消息,我们需要群组 ID,它充当电话号码的角色。

  1. 在 WhatsApp 上打开您想发送消息的群组。
  2. 点击“通过链接邀请”选项并复制链接。
  3. 链接的最后/后缀部分就是我们想要的群组 ID。

例如:https://chat.whatsapp.com/.......................

点线代表群组 ID。

我们需要在这里使用的方法是:pywhatkit.sendwhatmsg_to_group()

语法

这里有一个例子

Automate a WhatsApp message using Python

我们可以在方法中使用的其他参数:

  1. wait_time (int):在向联系人/群组发送给定消息之前,方法等待的时间(以秒为单位)。
  2. tab_close (bool):如果设置为 True,则消息发送后,选项卡将在指定秒数后关闭。默认为 False。
  3. close_time (int):我们为消息发送后关闭选项卡指定的秒数。

该库中还有另外两种能够即时发送消息的方法:

Automate a WhatsApp message using Python