В этой статье мы узнаем, как отправить сообщение каждому контактному лицу из таблицы базы данных MySQL в WhatsApp Web с помощью PyWhatKit.

Шаг 1. Настройка виртуальной среды
а. Установить Виртуалэнв

pip install virtualenv

б. Создайте новую виртуальную среду

 python -m venv <virtual-environment-name>

в. Активировать виртуальную среду

Вы можете либо запустить файл .py, либо скопировать относительный путь activate.bat и вставить его в командную строку.

Обратите внимание: если вы активируете виртуальную среду в Powershell, вам необходимо скопировать относительный путь Activate.ps1 и вставить его в Powershell.

Шаг 2. Подключитесь к базе данных MySQL

а. Установите PyMySQL

pip install PyMySQL

б. Подключить базу данных

В вашем DbConnect.py вам нужно подключиться к базе данных MySQL, чтобы получить все данные.

import pymysql.cursors

# Connect to Database
def open_conn():
    database = pymysql.connect(host="localhost", 
                               user="yourusername", 
                               passwd="yourpasswd",
                               database="dbname", 
                               cursorclass=pymysql.cursors.DictCursor)
    return database

# Execute "Retrieve All" Query
def execute_query(database):
    with database:
        with database.cursor() as cursor:
            # Query to retrieve all data
            sql = "Select * from tablename;"
            cursor.execute(sql)
            result = cursor.fetchall()
            # close database connection
            database.commit()
            return result

Убедитесь, что все контактные номера в таблице содержат код страны с +. Пожалуйста, обратитесь к таблице примеров, как показано на изображении ниже.

Шаг 3. Массовая рассылка сообщений

а. Установить pywhatkit

pip install pywhatkit

б. Отправить сообщение каждому человеку

Теперь вам нужно подключиться к базе данных и получить все данные, импортировав функции из вашего DbConnect.py

from DbConnect import open_conn, execute_query

db = open_conn()
result = execute_query(db)

Перед отправкой сообщения каждому человеку, использующему pywhatkit.sendwhatmsg(), вам необходимо определить предстоящую минуту и ​​текущий час, чтобы сообщить pywhatkit, когда он начнет отправлять сообщения.

Затем вам нужно увеличить предстоящую минуту на 1 в качестве следующего времени доставки для pywhatkit, чтобы отправить сообщение следующему человеку.

upcoming_minute = 34  # the next upcoming minute
for row in result:
    contact_no = row['contact_no']
    message = "Hello I'm sending message to " + row['name']
    current_hour = 11
    wait_time = 10 # time to wait before sending the message (minute)
    close_tab = True # close the browser tab
    close_time = 3 # time to close the tab (minute)

    pywhatkit.sendwhatmsg(contact_no, message, current_hour,
                          upcoming_minute, wait_time, close_tab, close_time)

    upcoming_minute += 1

Если вы хотите отправить сообщение с изображением через pywhatkit, вам нужно использовать pywhatkit.sendwhats_image(). На этот раз вам не нужно определять предстоящую минуту и ​​текущий час, но вы должны указать путь к изображению.

Обратите внимание, что для выполнения каждого выполнения требуется 1 минута, поэтому после определения значений wait_time и close_time необходимо приостановить выполнение текущего потока на оставшиеся секунды. (* Помните, что wait_time должно быть меньше, чем close_time). Например,

  • Время ожидания перед отправкой сообщения (wait_time) = 10 сек.
  • Время ожидания закрытия текущей вкладки после отправки сообщения (close_time) = 20 сек.
  • Время приостановки текущего выполнения (time.sleep(30)) = 30 секунд

Суммируем указанное выше необходимое время, получим 1 минуту. Через 1 минуту pywhatkit отправит сообщение с изображением следующему человеку.

import time

for row in result:
    contact_no = row['contact_no']
    image_path = "images/greetings.jpg"
    message = "Hello " + row['name']
    wait_time = 10 # time to wait before sending the message (minute)
    close_tab = True # close the browser tab
    close_time = 20 # time to close the tab (minute)
    
    pywhatkit.sendwhats_image(contact_no, image_path, message, wait_time, close_tab, close_time)
    time.sleep(30)

Шаг 4. Выполните свой код

Теперь откройте WhatsApp в любом браузере и запустите свой код. Сообщение будет отправлено автоматически каждую минуту. Результаты могут быть упомянуты как изображения ниже.

а. Результат использования pywhatkit.sendwhatmsg()

а. Результат использования pywhatkit.sendwhats_image()

Спасибо за прочтение этого поста.

Вот несколько хороших ресурсов, на которые я ссылался, чтобы узнать pywhatkit .