DevGang
Авторизоваться

PyWhatKit: как автоматизировать сообщения WhatsApp с помощью Python

Пользуетесь ли вы  Whatsapp? Знаете ли, как вызывать функции Python? Вы когда--нибудь хотели автоматизировать свои сообщения в Whatsapp? 

Теперь это можно сделать, если у вас за плечами хотя бы одна неделя программирования на Python. Библиотека pywhatkit позволяет отправлять отдельные сообщения Whatsapp, отправлять сообщения группами и даже отправлять изображения - и все это с помощью Python. Существуют также опции для воспроизведения видео на YouTube и просмотра интернета.

Сегодня вы узнаете, как отправлять сообщения Whatsapp себе или кому-либо еще с помощью pywhatkit и Python. Это те области на которых мы сосредоточимся:

  • Как установить PyWhatKit
  • Как мгновенно отправлять сообщения Whatsapp
  • Как Запланировать отправку сообщений Whatsapp на более поздний срок 
  • Отправляйте сообщения Whatsapp через скрипт Python
  • Расширенное использование: группы и изображения 

Как установить PyWhatKit?

Пакет доступен на PyPI, то есть вы можете его установить через pip. Прежде чем мы это сделаем, давайте создадим новую виртуальную среду на основе Python 3.10. После создания мы можем ввести команду pip для установки pywhatkit:

conda create --name pywhatkit_env python=3.10 -y
conda activate pywhatkit_env

pip install pywhatkit

Кроме того, я также установил Jupyter и JupyterLab, потому что это среда разработки, которую я буду использовать. Вы можете сделать то же самое, но вместо этого можете воспользоваться текстовым редактором. 

Для установки и запуска Jupiter:

pip install jupyter jupyter lab 
jupyter lab

Это все, что нам нужно, чтобы начать играть с pywhatkit.

Как мгновенно отправлять сообщения Whatsapp?

Предполагая, что у вас запущен Jupyter (или текстовый редактор), выполните импорт библиотеки:

import pywhatkit

Функция sendwhatmsg_instantly() отправит сообщение Whatsapp, как только вы запустите код, отсюда и «мгновенно» в названии. Требуются два параметра:

  1. phone_no - номер телефона, на который вы хотите отправить сообщение. Не забудьте указать код страны. 
  2. message - фактическое сообщение, которое вы хотите отправить.

Давайте посмотрим на это в действии: 

pywhatkit.sendwhatmsg_instantly(
    phone_no="<phone-number>", 
    message="Howdy! This message will be sent instantly!",
)

Если вы не вошли в Whatsapp Web, вы увидите этот экран предлагающий отсканировать QR-код с помощью телефона: 

Запрос на вход&nbsp;Whatsapp Web
Запрос на вход Whatsapp Web

После сканирования вы попадете на новый экран чата с вашим сообщением, заполненным в области ввода. По какой-то причине сообщение не отправляется автоматически и вам приходится в ручную нажимать на кнопку отправки. Это ошибка в библиотеке, которая вероятно будет исправлена в будущих версиях. 

Позже я покажу вам, как обойти эту ошибку, а пока просто нажмите кнопку «Отправить».

Вы увидите следующее, как в Whatsapp Web, так и на мобильных устройствах:

Отправка первого сообщения через PyWhatKit
Отправка первого сообщения через PyWhatKit

Это ваше первое сообщение в Whatsapp. 

Но что если вы хотите запланировать сообщения на определенное время? Давайте рассмотрим данный вариант по подробнее.

Как Запланировать отправку сообщений Whatsapp на более поздний срок

Иногда вы хотите отправлять сообщения в определенный момент времени. И в пакете pywhatkit имеется для этого специальная функция sendwhatmsg(). Помимо phone_no и message, для этого потребуются два дополнительных параметра:

  • time_hour - целое число представляет час (24-часовой формат), в течение которого вы хотите отправить сообщение.
  •  time_min - целое число, представляющее минуту, в течение которой вы хотите отправить сообщение.

Он работает почти также, как в нашем предыдущем примере:

pywhatkit.sendwhatmsg(
    phone_no="<phone-number>", 
    message="This is a scheduled message.",
    time_hour=9,
    time_min=47
)

Но в отличие от предыдущего примера, эта функция будет выводить время, оставшееся до отправки сообщений:

Планирование сообщений с помощью PyWhatKit
Планирование сообщений с помощью PyWhatKit

По истечению этих 53 секунд откроется окно браузера Whatsapp Web и вы увидите текст сообщения, заполненный в поле ввода. Как и прежде, сообщение не отправляется автоматически, и вам придется в ручную нажать на кнопку «Отправить».

После отправки вы увидите сообщение в чате как в Web, так и на мобильном устройстве:

Отправка запланированного сообщения через PyWhatKit
Отправка запланированного сообщения через PyWhatKit

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

Пока разработчики работают над исправлением этой ошибки, давайте посмотрим как вы можете ее обойти.

Отправляйте сообщения Whatsapp через скрипт Python

Вам понадобятся две дополнительные библиотеки Python для автоматического запуска кнопки «Отправить». Это pyautogui и pynput.

Функция send_whatsapp_message() выполняет следующее: 

  1. Открывает Whatsapp Web и заполняет поле ввода указанным сообщением
  2. Уходит в спящий режим за 10 секунд, чтобы убедиться, что все загрузилось правильно
  3. Щелкает по экрану, чтобы убедиться, что выбрано правильное окно/вкладка
  4. Нажимает и отпускает клавишу Enter на клавиатуре, чтобы отправить сообщение

Если какой-либо из шагов завершается неудачей, исключения выводятся на консоль.

Вот полный фрагмент кода для функции: 

import time 
import pywhatkit
import pyautogui
from pynput.keyboard import Key, Controller

keyboard = Controller()


def send_whatsapp_message(msg: str):
    try:
        pywhatkit.sendwhatmsg_instantly(
            phone_no="<phone-number>", 
            message=msg,
            tab_close=True
        )
        time.sleep(10)
        pyautogui.click()
        time.sleep(2)
        keyboard.press(Key.enter)
        keyboard.release(Key.enter)
        print("Message sent!")
    except Exception as e:
        print(str(e))


if __name__ == "__main__":
    send_whatsapp_message(msg="Test message from a Python script!")

Я сохранил этот код в файле tester.py и теперь запускаю его через Terminal:

python tester.py
Запуск скрипта Python через терминал
Запуск скрипта Python через терминал

Вы увидите ту же открытую вкладку браузера Whatsapp Web и заполненное поле сообщения, но на этот раз сообщение будет отправлено через пару секунд без вашего вмешательства.

Вот полная история чата:

Отправка последнего автоматизированного сообщения через Python
Отправка последнего автоматизированного сообщения через Python

И именно так вы можете обойти текущие ошибки в библиотеке. Давайте кратко рассмотрим некоторые варианты более расширенного использования. 

Расширенное использование: Группы и изображения

Вы также можете отправлять сообщения в группы Whatsapp и отправлять изображения с помощью pywhatkit. Обратитесь к этим удобным функциям, встроенным в библиотеку: 

  • sendwhatmsg_to_group(group_id: str, message: str, time_hour: int, time_min: int) - используется для отправки сообщений в группе
  • sendwhatmsg_to_group_instantly(group_id: str, message: str) - так же, как и предыдущая функция, но отправляет сообщение, как только вы запускаете код
  • sendwhats_image(receiver: str, img_path: str) - мгновенно отправляет изображение на номер или в группу. Существует необязательный параметр caption, используемый для подписи к изображению. Имейте ввиду, что формат файла PNG в настоящее время не поддерживается.

И это почти все, что есть в библиотеке pywhatkit Python, по крайней мере в отношении Whatsapp. Не стесняйтесь играть с этими тремя функциями самостоятельно. Я уверен, вы справитесь с этим.

#Python
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В подарок 100$ на счет при регистрации

Получить