В этой статье мы узнаем, как отправить сообщение каждому контактному лицу из таблицы базы данных 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
.
- Как настроить виртуальную среду в Python
https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/ - Автоматизация сообщений WhatsApp с помощью Python за 3 шага
https://towardsdatascience.com/automate-whatsapp-messages-with-python-in-3-steps-d64cf0de4539