[python] Бот для рассылки

Добро пожаловать!

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

Зарегистрироваться!
Активный
Регистрация
14 Сен 2024
Сообщения
298
Всем привет !
Написал бота по рассылки через во ВК
Прошу сильно не бить меня палками


1735067223251.png
1735067291602.png

Если кто-то не хочешь скачивать даю исходный код тут
Python:
import vk_api
import time
import random
import logging
import os
from vk_api.exceptions import ApiError

# Настройки (лучше вынести в отдельный файл)
TOKEN = ""
GROUP_ID = ""
MESSAGE_TEXT = "Привет, ГОЙДА!"
DELAY_SECONDS = 1
LOG_FILE = "vk_mailing.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

try:
    vk_session = vk_api.VkApi(token=TOKEN)
    vk = vk_session.get_api()

    # Получение ID подписчиков группы
    response = vk.groups.getMembers(group_id=GROUP_ID)
    user_ids = response['items']
    total_users = len(user_ids)
    sent_count = 0
    error_count = 0

    logging.info(f"Найдено подписчиков: {total_users}")
    print(f"Найдено подписчиков: {total_users}")

    # Рассылка сообщений
    for index, user_id in enumerate(user_ids):
        try:
            vk.messages.send(user_id=user_id, message=MESSAGE_TEXT, random_id=random.randint(0, 2 ** 31 - 1))
            logging.info(f"Сообщение отправлено пользователю ID {user_id}")
            print(f"Сообщение отправлено пользователю ID {user_id} ({index + 1}/{total_users})")
            sent_count += 1
        except ApiError as error:
            error_count += 1
            if error.code == 901:
                logging.warning(f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.")
                print(
                    f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.  ({index + 1}/{total_users})")
            else:
                logging.error(f"Ошибка отправки пользователю ID {user_id}: {error}")
                print(f"Ошибка отправки пользователю ID {user_id}: {error} ({index + 1}/{total_users})")

        time.sleep(DELAY_SECONDS)

    logging.info("Рассылка завершена!")
    print("Рассылка завершена!")
    logging.info(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")
    print(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")


except ApiError as error:
    logging.error(f"Произошла ошибка при инициализации сессии: {error}")
    print(f"Произошла ошибка при инициализации сессии: {error}")

except Exception as e:
    logging.error(f"Произошла ошибка: {e}")
    print(f"Произошла ошибка: {e}")
 

Вложения

  • main.py
    2.9 KB · Просмотры: 31
Пользователь
Регистрация
12 Авг 2024
Сообщения
35
скрипт бомбезный,респект!
 
  • Мне нравится!
Реакции: cool
Пользователь
Регистрация
5 Авг 2024
Сообщения
131
Всем привет !
Написал бота по рассылки через во ВК
Прошу сильно не бить меня палками



Если кто-то не хочешь скачивать даю исходный код тут
Python:
import vk_api
import time
import random
import logging
import os
from vk_api.exceptions import ApiError

# Настройки (лучше вынести в отдельный файл)
TOKEN = ""
GROUP_ID = ""
MESSAGE_TEXT = "Привет, ГОЙДА!"
DELAY_SECONDS = 1
LOG_FILE = "vk_mailing.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

try:
    vk_session = vk_api.VkApi(token=TOKEN)
    vk = vk_session.get_api()

    # Получение ID подписчиков группы
    response = vk.groups.getMembers(group_id=GROUP_ID)
    user_ids = response['items']
    total_users = len(user_ids)
    sent_count = 0
    error_count = 0

    logging.info(f"Найдено подписчиков: {total_users}")
    print(f"Найдено подписчиков: {total_users}")

    # Рассылка сообщений
    for index, user_id in enumerate(user_ids):
        try:
            vk.messages.send(user_id=user_id, message=MESSAGE_TEXT, random_id=random.randint(0, 2 ** 31 - 1))
            logging.info(f"Сообщение отправлено пользователю ID {user_id}")
            print(f"Сообщение отправлено пользователю ID {user_id} ({index + 1}/{total_users})")
            sent_count += 1
        except ApiError as error:
            error_count += 1
            if error.code == 901:
                logging.warning(f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.")
                print(
                    f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.  ({index + 1}/{total_users})")
            else:
                logging.error(f"Ошибка отправки пользователю ID {user_id}: {error}")
                print(f"Ошибка отправки пользователю ID {user_id}: {error} ({index + 1}/{total_users})")

        time.sleep(DELAY_SECONDS)

    logging.info("Рассылка завершена!")
    print("Рассылка завершена!")
    logging.info(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")
    print(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")


except ApiError as error:
    logging.error(f"Произошла ошибка при инициализации сессии: {error}")
    print(f"Произошла ошибка при инициализации сессии: {error}")

except Exception as e:
    logging.error(f"Произошла ошибка: {e}")
    print(f"Произошла ошибка: {e}")
Я не понял как работает этот бот
 
Пользователь
Регистрация
8 Дек 2024
Сообщения
48
как его запустить?
 
Заблокированный
Регистрация
13 Авг 2024
Сообщения
45
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки. Мы не несем ответственности за действия пользователя вне форума.
Всем привет !
Написал бота по рассылки через во ВК
Прошу сильно не бить меня палками



Если кто-то не хочешь скачивать даю исходный код тут
Python:
import vk_api
import time
import random
import logging
import os
from vk_api.exceptions import ApiError

# Настройки (лучше вынести в отдельный файл)
TOKEN = ""
GROUP_ID = ""
MESSAGE_TEXT = "Привет, ГОЙДА!"
DELAY_SECONDS = 1
LOG_FILE = "vk_mailing.log"

# Настройка логирования
logging.basicConfig(filename=LOG_FILE, level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

try:
    vk_session = vk_api.VkApi(token=TOKEN)
    vk = vk_session.get_api()

    # Получение ID подписчиков группы
    response = vk.groups.getMembers(group_id=GROUP_ID)
    user_ids = response['items']
    total_users = len(user_ids)
    sent_count = 0
    error_count = 0

    logging.info(f"Найдено подписчиков: {total_users}")
    print(f"Найдено подписчиков: {total_users}")

    # Рассылка сообщений
    for index, user_id in enumerate(user_ids):
        try:
            vk.messages.send(user_id=user_id, message=MESSAGE_TEXT, random_id=random.randint(0, 2 ** 31 - 1))
            logging.info(f"Сообщение отправлено пользователю ID {user_id}")
            print(f"Сообщение отправлено пользователю ID {user_id} ({index + 1}/{total_users})")
            sent_count += 1
        except ApiError as error:
            error_count += 1
            if error.code == 901:
                logging.warning(f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.")
                print(
                    f"Сообщение пользователю ID {user_id} не отправлено, нужно начать диалог с ботом.  ({index + 1}/{total_users})")
            else:
                logging.error(f"Ошибка отправки пользователю ID {user_id}: {error}")
                print(f"Ошибка отправки пользователю ID {user_id}: {error} ({index + 1}/{total_users})")

        time.sleep(DELAY_SECONDS)

    logging.info("Рассылка завершена!")
    print("Рассылка завершена!")
    logging.info(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")
    print(f"Отправлено сообщений: {sent_count}, ошибок: {error_count}, из {total_users}")


except ApiError as error:
    logging.error(f"Произошла ошибка при инициализации сессии: {error}")
    print(f"Произошла ошибка при инициализации сессии: {error}")

except Exception as e:
    logging.error(f"Произошла ошибка: {e}")
    print(f"Произошла ошибка: {e}")
Видно сразу, тут работал Chat GPT :)
 
Сверху