Вот основная проблема: иногда я получаю следующую ошибку, когда пытаюсь отправить DM:
Код: Выделить всё
Error sending DM to : status: 403, message: "{"errors":[{"code":226,"message":"This request looks like it might be automated. To protect our users from spam and other malicious activity, we can't complete this action right now. Please try again later."}]}"
Ниже приведен основной сегмент кода моего бота (упрощенный для удобства чтения):
Код: Выделить всё
import asyncio
import random
import string
async def main():
# Code to initialize and authenticate client
messages_sent = 0
for user_id in users_target:
print("Message sent so far:", messages_sent)
# Generate a message with random characters at the end
textmessage = f"{base_message}{random.choice(string.ascii_lowercase)}.{random.choice(string.ascii_uppercase)}"
# Random delay between 10 and 15 seconds
random_delay = random.randint(10, 15)
print(f"Delay before checking DM history: {random_delay} seconds")
await asyncio.sleep(random_delay)
# Check DM history
print("User screen name:", user_id.screen_name, "User ID:", user_id.id)
has_dm = await has_dm_history(client, user_id)
print("Has DM history:", has_dm)
if not has_dm:
try:
# Delay before sending DM
random_delay_before_dm = random.randint(7, 15)
print(f"Delay before sending DM: {random_delay_before_dm} seconds")
await asyncio.sleep(random_delay_before_dm)
# Send the DM
await client.send_dm(user_id.id, textmessage)
messages_sent += 1
print(f"DM sent to user: {user_id}")
# Delay after each message
random_delay_afrmsg = random.randint(35, 40)
print(f"Delay after sending message: {random_delay_afrmsg} seconds")
await asyncio.sleep(random_delay_afrmsg)
# Longer delay after every 12 messages
if messages_sent % 12 == 0:
print("Sent 12 messages, waiting for 10 minutes.")
await countdown_sleep(DELAY_BETWEEN_12_MSGS)
except Exception as e:
print(f"Error sending DM to {user_id}: {e}")
# Delay after error
random_delay_on_error = random.randint(7, 10)
print(f"Delay after error: {random_delay_on_error} seconds")
await asyncio.sleep(random_delay_on_error)
- Есть ли другие эффективные способы обхода этой ошибки?
- Кто-нибудь имеет опыт работы с Twikit и может предложить дополнительные стратегии?
< li>Есть ли способ дальнейшей рандомизации процесса DM (возможно, другой подход к рандомизации сообщений)?
- Случайные задержки: добавление случайных задержек между различными этапами рабочего процесса DM, а также более длительная задержка после каждых 12 сообщений, чтобы избежать проблем с ограничением скорости.
Случайные задержки: добавление случайных задержек между различными этапами рабочего процесса DM, а также более длительная задержка после каждых 12 сообщений, чтобы избежать проблем с ограничением скорости.
Случайные задержки: добавление случайных задержек между различными этапами рабочего процесса DM, а также более длительная задержка после каждых 12 сообщений, чтобы избежать проблем с ограничением скорости.
Случайные задержки: добавление случайных задержек между различными этапами рабочего процесса DM, а также более длительная задержка после каждых 12 сообщений, чтобы избежать проблем с ограничением скорости. li>
Рандомизация сообщений: добавление случайных символов (как в верхнем, так и в нижнем регистре) в конце каждого сообщения, чтобы оно выглядело менее предсказуемым.
Подробнее здесь: https://stackoverflow.com/questions/791 ... -the-looks