En este post encontrarás scripts hechos en vainilla javascript para seguir cuentas, para dejar de seguir cuentas indistintamente, dar likes por hashtag, así como la instalación del bot instauto
El proceso se explica completamente en el vídeo a continuación:
¿Qué es instauto?
instauto es una biblioteca de automatización / bot para Instagram, escrita en JavaScript moderno y limpio usando Puppeteer de Google.
Puppeteer es una librería de Node.js que proporciona una API de alto nivel que permite automatizar acciones sobre los navegadores de Google: tanto Chrome como su versión de código abierto Chromium.
El objetivo de instauto es ser muy fácil de configurar, usar y extender. instauto respeta los límites de Instagram. Está inspirado en InstaPy, Instabot pero más liviano y sencillo de configurar.
De Instapy a Instabot y de Instabot a instauto
Si sigues mis post, o mi canal de Youtube habrás visto que le he dedicado un gran número de publicaciones a automatizar procesos en Instagram.
Primero con Instapy y después de una gran cantidad de fallos, Instabot. Incluso implemente un post donde explicaba los comandos para implementar una plantilla personalizada de Instabot
La gran cantidad de personas indicando fallos, me llevó a re confirmar el funcionamiento de mi bot y lamentablemente Instagram implementó una nueva validación que rompe el proceso.
Por esto decidí primero montar unas plantillas en javascript vanilla para inyectar en la consola del navegador.
Actualmente me funciona la opción de seguir automáticamente los seguidores y a quienes sigue una cuenta en específico. El script de dejar de seguir a todos tus seguidores sin distinción y el de darle likes a los post relacionados con un hashtag específico, ubicación o publicaciones de una cuenta.
Estos script los comparto a continuación:
Script para seguir automáticamente los seguidores y a quienes sigue una cuenta en específico
const timeoutPromise = (timeout) => new Promise((resolve) => setTimeout(resolve, timeout));
const list = document.querySelectorAll('.y3zKF');
function clikOnLink(link){
link.click();
}
const asyncLoop = async () => {
for (let i = 0; i < list.length ; i++) {
await timeoutPromise(18000);
clikOnLink(list[i]);
}
}
asyncLoop();
Script para dejar de seguir a todos tus seguidores sin distinción
Puedes pararlo en cualquier momento con solo actualizar el navegador, podrías, primero seguir masivamente y después dejar de seguir un buen número de cuentas, ya va en la administración que decidas llevar, claro está teniendo en cuenta las condiciones de uso de Instagram para no infringir sus reglas.
// CÓMO EJECUTARLO EN GOOGLE CHROME
// 1. INSTAGRAMA ABIERTO
// 2. LISTA ABIERTA DE SEGUIDORES
// 3. HERRAMIENTAS DE DESARROLLADOR ABIERTAS
// 4. COPIE TODO AQUÍ CTRL + A
// 5. PEGAR TODO EN HERRAMIENTAS PARA DESARROLLADORES CONSOLA
// 6. HAGA CLIC ENTRAR
// NO TENDRÁS PRONTO AMIGOS
const FOLLOWING_BUTTON_TEXT = 'Siguiendo' // CAMBIAR ESTO A SU IDIOMA
const UNFOLLOW_BUTTON_TEXT = 'Dejar de seguir' // Este también
const MAX_ATTEMPTS_PER_UNFOLLOW = 3 // Si estás desde el PC estás bien
const unfollowSomebody = () => {
const followingButton = document
.evaluate(`//button[text()="${FOLLOWING_BUTTON_TEXT}"]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null)
.singleNodeValue
if (followingButton) {
console.log('Encontrado el siguiente botón. Haciendo clic ...')
followingButton.click()
console.log('Haga clic en el siguiente botón.')
let unfollowButton = document.evaluate(`//button[text()="${UNFOLLOW_BUTTON_TEXT}"]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue
let attempts = 1
while (attempts < MAX_ATTEMPTS_PER_UNFOLLOW && !unfollowButton) {
console.log(`Se Intentó encontrar Botón de dejar de seguir pero no se pudo. Número de reintento #${attempts++}`)
unfollowButton = document.evaluate(`//button[text()="${UNFOLLOW_BUTTON_TEXT}"]`, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue
}
if (attempts < MAX_ATTEMPTS_PER_UNFOLLOW) {
console.log('Botón de dejar de seguir encontrado. Haciendo scrolling y dejando de seguir ...')
unfollowButton.scrollIntoView(true)
unfollowButton.click()
} else {
console.log(`Se ha intentado ${MAX_ATTEMPTS_PER_UNFOLLOW} veces y no tuvo éxito`)
}
return false
}
return true
}
const timeout = (ms) => new Promise(resolve => setTimeout(resolve, ms))
const randomTimeout = () => (Math.floor((Math.random() * 30) + 30) * 300) + 300
const unfollowEveryone = async () => {
let shouldStop = false
while (!shouldStop) {
shouldStop = unfollowSomebody()
const unfollowTimeout = randomTimeout()
console.log(`Esperando ${unfollowTimeout} segundo. podría parar: ${shouldStop}.`)
await timeout(unfollowTimeout)
}
console.log('No sigues a nadie.')
}
unfollowEveryone()
Script de likes a los post relacionados con un hashtag específico, ubicación o publicaciones de una cuenta
const next = document.querySelector('a.coreSpriteRightPaginationArrow');
function doSomething(random) {
const like = document.querySelector('article > div.eo2As > section.ltpMr.Slqrh > span.fr66n > button');
if(like){
console.log('click\n');
like.click();
}
next.click();
console.log('Esperando '+random+' miliseconds\n');
}
(function loop() {
var min = 15000; // mínimo de 15 segundos
var max = 25000; // máximo de 25 segundos
var random = Math.floor(Math.random() * (+max - +min)) + +min;
setTimeout(function() {
doSomething(random);
loop();
}, random);
}());
var firstLike = document.querySelector('button > svg[aria-label="Like"]');
var closestElement = firstLike.closest('button');
closestElement.click();
Instalación del bot instauto para Instagram
Descarga del repositorio instauto
Para realizar la instalación de instauto, primero debes descargar el proyecto del repositorio a continuación, te recomiendo instalar git previamente.
Si realizaste la descarga he instalación de git, para descargar el proyecto de instauto en tu ordenador solo es que ejecutes desde consola el siguiente comando:
git clone https://github.com/mifi/instauto.git
Instalación de Node JS
¿Qué es Node JS?
Es un entorno de tiempo de ejecución para JavaScript que incluye todo lo que se necesita para ejecutar un programa escrito escrito en este lenguaje.
En palabras más sencillas genera un servidor que permite la ejecución de Javascript en el backend.
Para realizar el proceso de instalación de Node JS solo es necesario acceder al siguiente enlace
https://nodejs.org/es/download/
Realizar la instalación con los parámetros por defecto, según el sistema operativo y arquitectura de tu ordenador.
Personalizar la plantilla example.js
Básicamente, debes cambiar tus credenciales en el documento del repositorio que previamente en esta instancia debiste haber descargado
Específicamente debes poner tus credenciales de Instagram en el siguiente tramo de código y después guardar los cambios.
username: 'your-ig-username',
password: 'your-ig-password',
Instalación de Yarn
Es un instalador de paquetes para JavaScript, muy similar a PIP en el lenguaje de Python, es necesario para los demás procesos de instalación desde la línea de comandos.
El siguiente es el comando para realizar el proceso.
npm i -g yarn
Instalación de Puppeteer
Esta librería permite moverse con gran dominio sobre el navegador de Chrome y Chromium, donde se abrirá tu Instagram y hará la magia.
El comando es el siguiente
yarn add puppeteer instauto
Ejecución del bot instauto para Instagram
Ya para este punto solo queda ejecutar el siguiente comando si has realizado todos los procesos como se ha explicado.
node example
Siempre puedes donar
Este bot y los scripts son información privilegiada y exclusiva, no son copia ni tampoco están basados en ningún otro tutorial y son el resultado de horas de investigación entregadas de manera específica y desinteresada para el bien común. Si puedes hacerlo, te agradeceré mucho tu donación, el botón Paypal a continuación está configurado para un importe de 5 USD.
Espero te haya servido, saludos !!!
Ao instalar o puppeteer houve o seguinte erro:
PS C:\Users\JulioCesar\Documents\Bot.js\instauto> yarn add puppeteer instauto
yarn : O arquivo C:\Users\JulioCesar\AppData\Roaming\npm\yarn.ps1 não pode ser carregado porque a execução de scripts foi desabilitada neste
sistema. Para obter mais informações, consulte about_Execution_Policies em https://go.microsoft.com/fwlink/?LinkID=135170.
No linha:1 caractere:1
+ yarn add puppeteer instauto
+ ~~~~
+ CategoryInfo : ErrodeSegurança: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Tienes la ejecución de script deshabilitada en tu ordebador busca en youtube como habilitar la ejecución de script según tu sistema operativo!!
Tienes que habilitar la ejecución de scripts en tu sistema opetativo!!
hola, lo cerre y le doy ejecutar el bot de nuevo utilizando node example y me sale este error
Error: Cannot find module ‘C:\Users\iTech King\Documents\bot js\example’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
at Function.Module._load (internal/modules/cjs/loader.js:842:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: ‘MODULE_NOT_FOUND’,
requireStack: []
}
PS C:\Users\iTech King\Documents\bot js> node example
internal/modules/cjs/loader.js:969
throw err;
^
Error: Cannot find module ‘C:\Users\iTech King\Documents\bot js\example’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:966:15)
at Function.Module._load (internal/modules/cjs/loader.js:842:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: ‘MODULE_NOT_FOUND’,
requireStack: []
}
PS C:\Users\iTech King\Documents\bot js>
Hola! ¿Para personalizar las acciones que realiza este bot, debo seguir las instrucciones del post que realizaste de Personalización de Plantilla? ¿Son las mismas instrucciones? En mi caso quiero usar el bot para que ponga comentarios en diversas publicaciones relacionadas con varios hashtags. ¿Puedo hacerlo también con este?
Si es cuestión de cambiar los parámetros de la plantilla example, voy a buscar documentación y saco un nuevo post con los parámetros disponibles pero es perfectamente posible lo wue dices, saludos!!
Hola Mauricio,
Primero darte las gracias por el aporte, es genial y super bien explicado. Estoy realizando todos las pasos y una vez ejecuto el script, el bot abre instagram se logea, busca al usuario pero no ejecuta la acción de empezar a seguir ni nada más. Me da este error:
Failed to follow user followers, continuing Error: Evaluation failed: TypeError: Cannot read property ‘user’ of undefined
at __puppeteer_evaluation_script__:1:61
at ExecutionContext._evaluateInternal (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\ExecutionContext.js:217:19)
at runMicrotasks ()
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async ExecutionContext.evaluate (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\ExecutionContext.js:106:16)
at async followUserFollowers
(C:\…..\bot\instauto\node_modules\instauto\index.js:457:22)
at async Object.followUsersFollowers (C:\…..\instauto\node_modules\instauto\index.js:538:9)
at async C:\…..\instauto\example.js:65:5
— ASYNC —
at ExecutionContext. (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\helper.js:109:19)
at DOMWorld.evaluate (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\DOMWorld.js:84:24)
— ASYNC —
at Frame. (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\helper.js:109:19)
at Page.evaluate
(C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\Page.js:883:14)
at Page. (C:\…..\instauto\node_modules\puppeteer\lib\cjs\common\helper.js:110:27)
at getCurrentUser
(C:\…..\instauto\node_modules\instauto\index.js:285:17)
at followUserFollowers
(C:\…..\instauto\node_modules\instauto\index.js:457:28)
at async Object.followUsersFollowers (C:\…..\instauto\node_modules\instauto\index.js:538:9)
at async C:\…..\instauto\example.js:65:5
Me puedes ayudar?
Gracias de nuevo! Saludos.
Compañero debes configurar tu ordenador para que ejecute script, busca en youtube como configurar tu sistema operativo para ejecutar script te toca ejecutar un comando adicional, saludos!!!
Estás en google chrome??
Si. Todo en Chrome. He buscado y modificado que el ordenador pueda ejecutar scripts. Por eso se me hace raro, que el bot se ejecute, logeandose pero no sigue.
Parabens pelo trabalho, programa funciona perfeitamente.
Queria saber como faço para configurar para seguir pessoas por hastag, e para deixar de seguir mais rapidamente e mais uma vez parabens pelo trabalho e pela didatica.
Como configurar para seguir as pessoas mesmo o perfil sendo privado ?
eres el puto amo voy a compartir esto en twiter
Me alegro muchísimo que te haya gustado, saludos!!!
Para dejar comentarios y los likes hay alguna forma ? Estoy probando manejar el textarea pero aunque deje el boton enable ect no me deja comentarlo
Genial, aparte se nota que has estado currando desde las versiones anteriores como instapy que a mí me funcionó una temporada.
Tener algo así en proyectos web es como tener un asistente, muchas gracias Mauricio !
Te iba a dejar algún euro de donación, pero al entrar el PayPal 🤑 está en chino y se ve muy raro no quiero meter mi cuenta de paypal donde salen letras chinas y no entiendo nada 🤓用PayPal付款 请先输入您的邮箱地址或手机号码。
Si miras de que salga la web de paypal normal avisa por twiter y vengo a soltarte algo que te lo mereces 🙂
Jajakkakk voy a ver que pasa con eso muchas gracias!!!!
Como se podría hacer que no haga Unfollow a quien yo ya seguía? no me aclaro o no se puede ?
Tengo un post para unfollow pero no es bot, este es el enlace
http://configuroweb.com/dejar-de-seguir-a-quien-no-te-sigue-en-instagram-desde-el-movil/
Saludos!!
hermano dejo de funcionar el codigo que de la like a un #. podria ayudarme? pasa la foto pero no le da like.
Esos son bloqueos temporales de Instagram, ten cuidado, úsalo con mesura, descansa las optimizaciones una semana por lo menos, saludos!!
Hola buen día ¿Qué debería agregar en el código para el uso de un proxy? Tienes alguna documentación al respecto?
El bot está diseñado para implementarse con proxi, la unica recomendación es que no uses ip gratuitas!!
Muchas gracias por la respuesta, sin embargo, cuando configuro el navegador para el uso del proxy, y luego ejecuto el script el navegador se abre y luego se cierra y sale el siguiente mensaje:
Error: net::ERR_INVALID_AUTH_CREDENTIALS at https://www.instagram.com/
at navigate (C:\Users\WhatUpTime.com\Documents\bot js\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:113:23)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async FrameManager.navigateFrame (C:\Users\WhatUpTime.com\Documents\bot js\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:88:21)
at async Frame.goto (C:\Users\WhatUpTime.com\Documents\bot js\node_modules\puppeteer\lib\cjs\puppeteer\common\FrameManager.js:405:16)
at async Page.goto (C:\Users\WhatUpTime.com\Documents\bot js\node_modules\puppeteer\lib\cjs\puppeteer\common\Page.js:826:16) at async Instauto (C:\Users\WhatUpTime.com\Documents\bot js\node_modules\instauto\index.js:701:3)
at async C:\Users\WhatUpTime.com\Documents\bot js\instauto\example.js:59:22
Closing browser
Hola! Me ha dejado de funcionar.
Cuando ejecuto, me abre todo normalmente, incluso abre Chromium e ingresa a la cuenta de Instagram, pero luego no ejecuta ninguna acción.
Me aparece esta línea:
WARNING: Login has not succeeded. This could be because of an incorrect username/password, or a “suspicious login attempt”-message. You need to manually complete the process.
Podrías ayudarme, por favor?
Muchas gracias y un saludo!
Cambia el pass en instagram y en el bot y me dices si persiste el fallo!!
buen dia !! Lo active para una cuenta y me funciono perfecto pero cuando quiero activarlo para otra cuenta me sale el siguiente error:
Failed to follow user followers, continuing Error: Evaluation failed: TypeError: Cannot read property ‘user’ of undefined
at __puppeteer_evaluation_script__:1:61
at ExecutionContext._evaluateInternal (C:\Users\Alejandro\Desktop\bot agus\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:217:19) at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async ExecutionContext.evaluate (C:\Users\Alejandro\Desktop\bot agus\node_modules\puppeteer\lib\cjs\puppeteer\common\ExecutionContext.js:106:16)
at async followUserFollowers (C:\Users\Alejandro\Desktop\bot agus\node_modules\instauto\index.js:492:22)
at async Object.followUsersFollowers (C:\Users\Alejandro\Desktop\bot agus\node_modules\instauto\index.js:574:9)
at async C:\Users\Alejandro\Desktop\bot agus\example.js:65:5
Muy probablemente te detectó, trata dejando dos dias de pausa y despues re instala todo de cero
ya no funciona ninguna instancia y me iva todo perfecto.
me salta este error siempre:
PS C:\Users\Srta.Dowtfire\Documents\rude\instauto> node example
TimeoutError: Navigation timeout of 30000 ms exceeded
at C:\Users\Srta.Dowtfire\Documents\rude\instauto\node_modules\puppeteer\lib\cjs\puppeteer\common\LifecycleWatcher.js:106:111
Closing browser
Ando buscando otras opciones, aunque hay usuarios a quienes le siguen funcionando
Buenos dias
Me sale este error
WARNING: Login has not succeeded. This could be because of an incorrect username/password, or a “suspicious login attempt”-message. You need to manually complete the process.
No es el password por que al final loguea sin novedad, pero no inicia los scripts se quedan en waiting 5 ..6 ..6 y nunca inicia, le di “fui yo” a la ubicacion de inicio de sesion pero el error persiste y no inicia el bot. te agradezco la ayuda y de antemano gracias.
se arregló reinstalando !!!