👻 BOT SPAMMER COMENTARIOS INSTAGRAM (GANAR CUALQUIER SORTEO) 👻


Estado
Cerrado para nuevas respuestas.
hq720.jpg
maxresdefault.jpg






Bot para Sorteos de Instagram


Código en Python que desarrollé para facilitar la participación en sorteos de Instagram donde es necesario mencionar a personas en los comentarios.


🔗 Descarga e instalación
Pueden descargar el bot desde el siguiente enlace:

📥 Descargar Bot


Este paquete incluye:


  • El bot listo para usar.
  • Tres archivos Excel con listas de nombres predefinidos.

📌 Instrucciones de uso​


  1. Instalar el bot y ejecutarlo.
  2. Cargar un archivo Excel con nombres predefinidos.
  3. En la sección "Nombres/ciclo", seleccionar 1, 2 o 3, según el número de menciones requeridas por el sorteo.
  4. Hacer clic en "Iniciar" y colocar el cursor en la caja de comentarios de la publicación del sorteo.
  5. El bot comenzará a mencionar automáticamente a las cuentas en los comentarios.

💡 Recomendación: Se recomienda ejecutarlo en un PC secundario, ya que la ventana de la publicación debe permanecer abierta durante su funcionamiento.


⚙️ Funcionamiento del bot​


  • El bot debe estar en una carpeta junto con:
    • bot.pyb (el script principal).
    • bot.bat (para ejecutar el bot fácilmente).
    • Archivos Excel con nombres (nombres.xlsx, nombres1.xlsx, etc.).
  • Para generar el archivo de nombres, pueden usar una extensión de Chrome como IG Export, extrayendo seguidores de una cuenta aleatoria y ajustando el archivo (dejando solo la columna "A" con los nombres).

🔧 Características​


  • Solicita el archivo Excel con los nombres.
  • Permite elegir cuántos nombres mencionar por comentario.
  • Proporciona 5 segundos para colocar el cursor en la caja de comentarios antes de comenzar.
  • Envía comentarios con un delay de 1 minuto entre cada uno para evitar bloqueos temporales de Instagram.
  • Tecla F8 para pausar y reanudar el bot desde el mismo punto.




Código:
import time
import pyautogui
import pandas as pd
import random
import os
import keyboard

def seleccionar_archivo():
    print("Archivos disponibles:")
    archivos = [f for f in os.listdir() if f.startswith("Nombres") and f.endswith(".xlsx")]
    for i, archivo in enumerate(archivos):
        print(f"{i + 1}. {archivo}")
    while True:
        try:
            seleccion = int(input("Selecciona el número del archivo que deseas usar: "))
            if 1 <= seleccion <= len(archivos):
                return archivos[seleccion - 1]
            else:
                print("Número fuera de rango. Intenta de nuevo.")
        except ValueError:
            print("Entrada inválida. Introduce un número.")

def esperar_reanudacion():
    print("\nBot pausado. Presiona F8 para reanudar...")
    keyboard.wait("F8")
    print("Bot reanudado.")

try:
    archivo_nombres = seleccionar_archivo()
    print(f"Archivo seleccionado: {archivo_nombres}")
    try:
        df = pd.read_excel(archivo_nombres)
        nombres = df["nombres"].tolist()
    except Exception as e:
        print(f"Error al leer el archivo Excel: {e}")
        print("Asegúrate de que el archivo tiene una columna llamada 'nombres'.")
        input("Presiona Enter para salir...")
        exit()
    cantidad = int(input("¿Cuántos nombres quieres escribir por ciclo? (1, 2 o 3): "))
    print("Posiciona el mouse donde quieres escribir en 5 segundos...")
    time.sleep(5)
    x, y = pyautogui.position()
    print("Bot iniciado. Presiona F8 en cualquier momento para pausar/reanudar.")
    while nombres:
        if keyboard.is_pressed("F8"):
            esperar_reanudacion()
        nombres_seleccionados = random.sample(nombres, min(cantidad, len(nombres)))
        for nombre in nombres_seleccionados:
            nombres.remove(nombre)
        pyautogui.click(x, y)
        time.sleep(0.3)
        pyautogui.hotkey("ctrl", "a", interval=0.05)
        pyautogui.press("delete")
        for nombre in nombres_seleccionados:
            pyautogui.hotkey("ctrl", "alt", "2")
            pyautogui.write(nombre)
            pyautogui.press("space")
        time.sleep(0.8)
        pyautogui.keyDown("enter")
        time.sleep(1)
        pyautogui.keyUp("enter")
        print(f"¡Comando ejecutado! Nombres escritos: {', '.join(nombres_seleccionados)}")
        if nombres:
            print("Esperando 60 segundos antes del próximo ciclo...")
            for i in range(60, 0, -1):
                if keyboard.is_pressed("F8"):
                    esperar_reanudacion()
                print(f"Tiempo restante: {i} segundos", end="\r")
                time.sleep(1)
            print(" " * 30, end="\r")
    print("\nTodos los nombres han sido procesados. Bot detenido.")
    input("Presiona Enter para salir...")
except Exception as e:
    print(f"Ocurrió un error inesperado: {e}")
    print("Revisa el archivo Excel o la configuración del bot.")
    input("Presiona Enter para salir...")

Disfrutad.
 
Última edición por un moderador:

bululu

Miembro muy activo
De puta madre esto, realmente es sencillo pero está muy bien. Creo que incluso podrías darle un retoque haciendo que los time.sleep sean aleatorios dentro de un rango aprovechando que ya importa la librería random para los nombres, así incluso se nota menos que se esté usando un bot ya que no seguiría un patrón tan marcado de tiempo al momento de subir comentarios. En algunos sorteos te piden también que comentes algo, creo que se podría añadir, igual que en los nombres, que se tome un archivo donde haya patrones de comentarios tipo: "invitaría a: ", "Necesito que me toque estooo", o demás mierdas que se le puede pedir a chatGPT que te haga un listado en csv o en xlsx. Así que eso luego lo escriba de forma aleatoria antes de los nombres y pa' lante. Incluso si usas algo tipo selenium puedes hacer que el proceso vaya funcionando sin que tengas que dejar de usar el ordenador, te consume potencia pero tampoco creo que vaya a ser una barbaridad con tanto time.sleep. Hace un tiempo hice yo un archivo para hacer búsquedas de productos en amazon, importando selenium, y realmente podía dejarlo funcionando mientras seguía a mi rollo navegando por internet sin problemas.
dalee
 
Estado
Cerrado para nuevas respuestas.