Haz un BOT de INSTAGRAM con PYTHON | Selenium

Поделиться
HTML-код
  • Опубликовано: 27 дек 2024

Комментарии • 86

  • @senorwhiss8106
    @senorwhiss8106 3 года назад +3

    oye hermano por que sigues usando el executable path? ya es viejo y obsolte es mejor usar el service no crees?

    • @trecno
      @trecno  3 года назад +3

      Muy buena pregunta, pues no lo sé exactamente. Pero es una mejor opción para no tener que estar cambiando manualmente el driver cada vez que se lanza uno nuevo.
      Si me lo permites, fijo este comentario porque puede ser útil para mucha gente. ¡Muchas gracias!
      www.selenium.dev/documentation/webdriver/getting_started/install_drivers/#1-driver-management-software
      github.com/SergeyPirogov/webdriver_manager

    • @mo-dc3on
      @mo-dc3on 2 года назад

      disculpa soy relativamente nuevo y si me puedes explicar que es service y como utilizarlo en vez de xpath

  • @tromds
    @tromds 3 года назад +3

    Buenísimo!! tengo varios bots en twitter trabajando y estoy empezando con instagram. Muy bien!!

    • @Vugo11
      @Vugo11 3 года назад

      Cómo se trabaja con Twitter y los bots?

    • @sncnlslcmto1753
      @sncnlslcmto1753 3 года назад

      @@Vugo11 necesitas entrar a la pagina de desarrollo de twitter , developer.twitter.com y crear una aplicacion

    • @trecno
      @trecno  3 года назад

      Me alegro de que te haya gustado el vídeo :)

  • @gabrielmatianich3992
    @gabrielmatianich3992 3 года назад +2

    Excelente script he tenido que modificar los xpath y el selector css para que vuelva a funcionar y la verdad que me gusto lo simple de tu código y lo bien ordenado que esta, felicidades, me suscribo.

    • @trecno
      @trecno  3 года назад +1

      ¡Hola Gabriel!
      Gracias por tu comentario, me anima a seguir subiendo contenido.
      Y me alegro también de que te haya servido. Un saludo :)

    • @Jtsoyyo
      @Jtsoyyo 2 года назад

      como hiciste?

    • @marc_montalvez
      @marc_montalvez 2 года назад

      He tenido que ir haciendo lo mismo pero me he atascado en el xpath del like.
      Por algún motivo aunque meta el xpath o el full xpath no me los pilla y me da exception, lo mismo con comentario, flecha de la derecha... pero si llego a abrir la imagen primera.
      El error que me sale es un "unable to locate".
      Introduciendo el full path no entiendo porque ocurre, entonces el for lo que me hace es ir abriendo publicaciones pero no interactua con ellas

    • @Jtsoyyo
      @Jtsoyyo 2 года назад +2

      @@marc_montalvez yo resolvi probando estaba obteniendo mal el boton

    • @marc_montalvez
      @marc_montalvez 2 года назад

      @@Jtsoyyo lo volvere a intentar enconces. Porque me da la sensacion de que puede ser eso, que al abrir el F12 y seleccionar el boton, no selecciono correctamente

  • @ferchitoqn92
    @ferchitoqn92 3 года назад +1

    Gracias por el video, es posible buscar publicaciones con 2 hashtags a la vez en instagram?

    • @trecno
      @trecno  3 года назад

      ¡Hola! Gracias por comentar. Pues que yo sepa no existe una manera directa a través de Instagram de buscar publicaciones con dos hashtags a la vez, aunque puede ser que por internet exista alguna herramienta que haya indexado el contenido de Instagram y que permita hacer eso que comentas.

  • @Viejas23
    @Viejas23 3 года назад +1

    hola, al igual que gabriel debo cambiar los xpath, pero como lo hago?? (el de la linea 36)

    • @trecno
      @trecno  3 года назад +1

      ¡Hola! Gracias por comentar.
      En el instante 2:41 empiezo a explicar cómo se puede obtener el xpath o el selector CSS.
      El proceso es el mismo para el XPath de la línea 36, el problema (que imagino que es lo que te pasa) es que al inspeccionar la imagen de una publicación, aparece solo la etiqueta body seleccionada, entonces hay que ir desplegando los elementos contenidos en ella y pasando el cursor por encima, para que se ilumine la parte equivalente.
      Aquí tienes una imagen que lo ilustra: raw.githubusercontent.com/trecno/comentarios/main/encontrar_xpath.png
      Espero que te sirva. Para cualquier cosa estoy a tu disposición. Un saludo

  • @4lb3rt0r
    @4lb3rt0r 2 года назад +2

    Hola trecno!! tengo una pequeña duda, en la parte dónde obtienes el xpath para las cookies no me es posible siquiera inspeccionar el elemento del botón ya que no me aparece la ventana para aceptar las cookies, entonces qué es lo que debo hacer, ayudaa jajaja y saludos :)

    • @trecno
      @trecno  2 года назад +1

      ¡Hola! Gracias por comentar.
      Si no te aparece la ventana de las cookies lo que puedes hacer es quitar la parte del código de aceptar cookies y pasar directamente a escribir el usuario y la contraseña.
      Para cualquier cosa estoy a tu disposición. Un saludo

    • @4lb3rt0r
      @4lb3rt0r 2 года назад

      @@trecno mil gracias por el tip trecno!! :D

  • @ccamiloherrera
    @ccamiloherrera 3 года назад +2

    tengo un bot parecido y me gustaria hacerle una interfaz para no tener que cambiar todo desde el propio visual studio, cómo lo podria hacer?

    • @trecno
      @trecno  3 года назад +1

      ¡Hola Camilo! Gracias por comentar.
      Para crear una interfaz gráfica en la que puedas editar los parámetros que luego el bot va a utilizar, puedes usar algo como GTK (www.gtk.org/) [personalmente lo he usado y está bastante bien], y sino tienes otras alternativas como Kivy, Tkinter,...
      Espero haberte ayudado. Para cualquier duda o sugerencia, por aquí estoy.
      Un saludo :)

  • @fergio159
    @fergio159 3 года назад +1

    se puede hacer con los followers de una cuenta?

    • @trecno
      @trecno  3 года назад

      Sí, por supuesto.
      Para cualquier duda o sugerencia aquí estamos :)

    • @fergio159
      @fergio159 3 года назад +1

      @@trecno y cuantos se pueden seguir al dia para que no te bloqueen?

    • @trecno
      @trecno  3 года назад

      @@fergio159 En mi caso creo que la mejor proporción es que sigas como máximo a un 10% del número de seguidores que tienes en esa cuenta, lo he probado con una de 150 y otra de 2000 seguidores. Y para que sea más díficil que detecten el bot (al principio me pillaron a la primera porque el bot siguió a 500 personas en un día 😅), lo que puedes hacer es usar la biblioteca random de Python para generar un número aleatorio de personas a las que seguir (porque si sigues al mismo número todos los días es un poco sospechoso), y luego meter en una lista el nombre de diferentes cuentas y usar random.choice() para seleccionar una cuenta distinta cada día.
      Espero que te sirva. Ya me contarás. Un saludo.

    • @fergio159
      @fergio159 3 года назад +1

      @@trecno muchas gracias por la información. A ver si me sale jaja. Yo lo que quiero es seguir a todos los followings de una persona, para saber qué amigos en común tiene con otro nick. ¿No hay ningún bot para saber cuantos amigos en común tienen dos personas? sin que una de ellas sea yo, claro.

    • @trecno
      @trecno  3 года назад

      @@fergio159 Me alegro de que te sirva. Respecto a tu pregunta, no tengo ni idea de si hay algún bot así :(

  • @pablonicolasmktg
    @pablonicolasmktg 3 года назад +3

    Como instalo selenium y python? Me puede hablar por algún sitio para hacerlo?

    • @trecno
      @trecno  3 года назад +1

      ¡Hola! Gracias por comentar.
      Para instalar Python puedes hacerlo a través de la página oficial (www.python.org/downloads/)
      Para instalar la biblioteca selenium tendrás que usar "pip3 install selenium" en la terminal y sus drivers para controlar los navegadores los encontrarás en www.selenium.dev/documentation/getting_started/installing_browser_drivers/#quick-reference
      Espero haberte ayudado, para cualquier duda o sugerencia aquí estoy. Un saludo :)

  • @RIALLUCAS
    @RIALLUCAS 3 года назад +1

    Me salta un error cuando se va a loggear, si tienes alguna red social de contacto¿?

    • @trecno
      @trecno  3 года назад

      ¡Hola!
      Puede ser que Instagram haya cambiado la estructura de la web, y el XPath o el CSS Selector de algún elemento de los del login no sea el mismo al que aparece en el código de la descripción. Por ejemplo, el XPath del botón de las cookies ahora es _/html/body/div[4]/div/div/button[1]_ , antes donde ahora hay un 4 había 3.
      Respecto a tu pregunta, esta es mi única red social de contacto.
      Un saludo.

  • @androidemacaobr667
    @androidemacaobr667 3 года назад +2

    Nuevo seguidor conteudo top 🙂

    • @trecno
      @trecno  3 года назад

      Obrigado!

  • @Rax41
    @Rax41 3 года назад +2

    Buenas Trecno.
    Estaba intentando un bot como el tuyo pero en la parte tras acceder a cierto hashtag, no se que pasa que Chrome no me devuelve de forma correcta el xPath al inspeccionar la primera publicación de ese hashtag.
    ¿Sabes si IG ha cambiado esta página para evitar Bots?
    Un saludo.

    • @trecno
      @trecno  3 года назад +1

      ¡Hola! Gracias por comentar.
      Como comentas, Instagram de vez en cuando cambia el HTML de la página, y por ende el xPath.
      Sin embargo, lo puedes seguir obteniendo como lo hago en el minuto 2:47. En Chrome tengo entendido que puedes "Copy XPath" o "Copy full Xpath", puedes probar con ambos si no lo has hecho ya. Y sino puedes usar otro navegador como Firefox para obtener el XPath, aunque luego el bot use Chrome.
      Espero que te sirva. Ya me dirás, para cualquier cosa aquí estoy. Un salduo.

    • @Rax41
      @Rax41 3 года назад +1

      @@trecno Efectivamente me fallaba en otra cosa, porque ahora si me va, muchas gracias por la respuesta! Gran vídeo.

  • @DanielLadeda
    @DanielLadeda 2 года назад +2

    Gracias por el video. Lo voy a probar. Mi pregunta es la siguiente. No se puede hacer el programa tipo ejecutable?. Que uno llene los campos y el procese. Para no tener que estar cambiando código cada 2 x 3. Saludos

    • @trecno
      @trecno  2 года назад

      ¡Hola! Gracias por comentar.
      Sí, puedes hacer un programa ejecutable, por ejemplo www.py2exe.org/ te permite convertir to código de python en un .exe de windows.
      Para lo de los campos, igual conviene crear una interfaz gráfica, eso lo puedes hacer con gtk, kivy, tkinter,...
      Espero que te sirva. Para cualquier duda o sugerencia estoy a tu disposición. Un saludo.

  • @francolarrea3884
    @francolarrea3884 3 года назад +1

    Muy bueno el video!

    • @trecno
      @trecno  3 года назад +1

      Gracias por comentar y me alegro de que te haya gustado :)

    • @francolarrea3884
      @francolarrea3884 3 года назад +1

      ​@@trecno Estuve probando bots como instabot o instapy, pero esto es mucho más cómodo y personalizable. Lo explicas de forma breve y sencilla!

    • @trecno
      @trecno  3 года назад

      @@francolarrea3884 Yo también estuvé usando instapy, pero preferí usar Selenium para hacer algo más personalizado, como dices tú. El inconveniente reside en que Instagram cambia de vez en cuando el HTML y CSS de la página y entonces el bot deja de funcionar correctamente, y hay que buscar de nuevo el xpath o el selector CSS y modificar el código. Por cierto, si tienes alguna sugerencia para mejorar el canal o ideas para vídeos, soy todo oídos.

    • @francolarrea3884
      @francolarrea3884 3 года назад +1

      ​@@trecno Me di cuenta, un par de try: except: añadiendo los diferentes xpath o clases y fuera.
      ¿Podrías hacer algún video de personalización de linux desde 0? Por ejemplo, realizar la instalacion de Debian netinst, configurandolo (Sonido, Redes, Gestor de Ventanas, Bluetooth...) y personalizándolo con bspwm o i3, rofi, polybar, etc.
      La idea es que te quede una instalación más ligera que las distribuciones que ya incluyen escritorio (Ej. Ubuntu con Mate, KDE...) y además personalizada a tu gusto.

    • @trecno
      @trecno  3 года назад

      @@francolarrea3884 Tomo nota de tu sugerencia, ¡gracias!

  • @sergiorodriguezmoreno183
    @sergiorodriguezmoreno183 2 года назад +2

    Hola! No se si sería posible. Pero podrías hacer un vídeo en el que creases un bot que borrase (mensaje a mensaje) los chats de instagram?

    • @trecno
      @trecno  2 года назад

      ¡Hola! Gracias por comentar.
      Podría pero me falta tiempo para sacar nuevos vídeos, y si saco quiero que no sean siempre de la misma temática.
      Un saludo :)

  • @videosanimadosexplicativos
    @videosanimadosexplicativos 2 года назад +1

    Hola amigo. Excelente video. He seguido todos los pasos, me abre el navegador pero no escribe las credenciales en los campos de usuario y contraseña. Alguna idea de qué podría ser? Gracias!

    • @trecno
      @trecno  2 года назад

      ¡Hola! Gracias por comentar.
      Puede ser porque Instagram haya cambiado la estructura de su página y por ende los xpath de los elementos.
      En el instante 2:38 se muestra cómo buscar el xpath o cualquier otro selector de un elemento.
      Espero haberte ayudado. Un saludo

  • @RIALLUCAS
    @RIALLUCAS 3 года назад +1

    mi unico error es q me pone no module named 'selenium'

    • @trecno
      @trecno  3 года назад +1

      ¡Hola! Gracias por comentar.
      Prueba a instalarlo de las siguientes maneras:
      1.
      _pip install selenium_
      2. Si necesitas permisos
      _sudo pip install selenium_
      3. Si estás usando Python3
      _pip3 install selenium_
      Si te sigues si funcionar, puede que lo tengas que instalar manualmente con setup.py (te dejo este enlace donde se explica: shashanksrivastava.medium.com/how-to-fix-no-module-named-selenium-error-in-python-3-da3fd7b61485)
      Espero que te sirva. Para cualquier cosa estoy a tu disposición. Un saludo.

    • @RIALLUCAS
      @RIALLUCAS 3 года назад +1

      @@trecno muchas gracias, voy a probar, esque me vendria muy muy bien el tema de comentar en las publicaciones

  • @juancarlosgutierrez3951
    @juancarlosgutierrez3951 3 года назад +1

    Interesante todo lo que describres y como funciona ¡, se podria hacer uno para seguir gente de una determinada cuenta y tambien dejar de seguir gente. ?, tienes algun tutorial al respecto ?

    • @trecno
      @trecno  3 года назад

      ¡Hola! Gracias por comentar.
      No tengo ningún vídeo de eso. Sin embargo, sí que tengo un bot que sigue, el código lo tienes en gist.github.com/trecno/52808cf63de944aa6585e871b8492c59
      Tiene un archivo .csv asociado llamado (followed.csv) que inicialmente tiene _username,start_date,end_date_ y que va guardando a los que se han seguido para que nos los vuelva a seguir. También hay otros parámetros en los bucles for que controlan el número de cuentas a las que se da a seguir.
      Espero que te sirva. Para cualquier cosa estoy a tu disposición. Un saludo.

  • @Axll.13
    @Axll.13 2 года назад +1

    Una pregunta , esto sería para tener seguidores? , por ejemplo ponerme mil seguidores?

    • @trecno
      @trecno  2 года назад

      Podrías usarlo para seguir gente, que está gente te siga a ti de vuelta, y posteriormente les dejas tú de seguir.

  • @carlospurzel
    @carlospurzel 3 года назад +1

    Muy bueno, lo estuve probando. Y solo da Me gusta y Comentario a las primeras dos imagenes de cada Hashtag, ahi empieza un bucle con las mismas dos imagenes, hasta que completa las 5 de este llamado (or n in range(5):) Hay manera de saltar esa repeticion?

    • @trecno
      @trecno  3 года назад +1

      ¡Hola Carlos! Antes que nada gracias por comentar. Puede ser que Instagram haya cambiado el nombre de los elementos y por ello algunas cosas no funcionen adecuadamente. Pero he estado mirándolo ahora y el selector CSS (.coreSprite*Right*PaginationArrow) no lo han cambiado, y para volver de la segunda foto a la primera tendría que hacer clic en el izquierdo que tiene Left en vez de Right, qué cosa más rara 😕. ¿Se cargan todas las publicaciones/fotos bien? ¿Puedes grabar algún vídeo y pasar enlace para hacerme una idea de cómo está funcionando el bot?

    • @carlospurzel
      @carlospurzel 3 года назад +1

      @@trecno Lo tenia un poco liado, porque le cambie el find_element, ahora lo corregi y funciona de maravillas.

    • @trecno
      @trecno  3 года назад

      @@carlospurzel De acuerdo, me alegro de que al final te funcione.

    • @carlosivanespinozacecena7573
      @carlosivanespinozacecena7573 3 года назад

      amigo me puedes pasar el codigo carlos

  • @juivefjc
    @juivefjc 2 года назад +1

    saludos bro sigue activo este procedimiento?

    • @trecno
      @trecno  2 года назад

      No, tanto selenium como instagram han cambiado en el último año, por lo que toca cambiar el código un poco.
      Un saludo :)

    • @ExternalBiologySpace
      @ExternalBiologySpace 2 года назад

      @@trecnoPrimero que todo gracias trecno por comentar! y que se haría en ese caso?

  • @oyefededes3540
    @oyefededes3540 2 года назад +1

    Hermano estoy creando un bot de instagram que deja de seguir a algunos usuarios que tú sigues... Cuando lo ejecuto todo va bien y parece que los deja de seguir pero cuando me fijo en cuantas personas deje de seguir, me doy cuenta de que no siempre el bot deja de seguir a la cantidad que quiero dejar de seguir...
    Es como que instagram me bloquea (sin decirme) las acciones que puedo hacer (en este caso dejar de seguir).
    Sabes cómo lo puedo solucionar?
    Agradecería muchísimo tu ayuda 🙏🙏

    • @trecno
      @trecno  2 года назад

      ¡Hola! Gracias por comentar.
      ¿Cómo tienes diseñado el bot? ¿Que vaya a tu perfil y clique sobre las personas a las que sigues y de ahí vaya dejando de seguir? Si es así, igual al hacer scroll se pasa de largo y por eso no deja de seguir a tantas personas como quieres.
      Sino lo de que te bloquea sin decirte nada también parece factible.
      Para cualquier cosa estoy a tu disposición. Un saludo.

    • @oyefededes3540
      @oyefededes3540 2 года назад +1

      @@trecno ya probé de todas formas... Ahora el bot obtiene una lista de todos los usuarios que una persona sigue, y después va al perfil de cada uno para dejarlo de seguir uno por uno

    • @trecno
      @trecno  2 года назад

      ​@@oyefededes3540 Entonces, ¿ya lo has solucionado?

    • @oyefededes3540
      @oyefededes3540 2 года назад +1

      @@trecno no Bro, sigue sin dejar de seguir a algunas personas, es como que instagram detecta que estoy usando un bot y lo hace inservible

    • @trecno
      @trecno  2 года назад

      @@oyefededes3540 Vaya, qué mal.
      Lamento no haberte podido ayudar, de todos modos para cualquier cosa aquí estoy.
      Y si lo consigues, no dudes en decirme cómo lo has hecho.

  • @bautistagarbino9313
    @bautistagarbino9313 3 года назад +1

    Hola bro, excelente video! una consulta, yo tengo una cantidad de perfiles de instagram con la misma contraseña todos. Habria alguna manera de hacer para que todas esas cuentas que yo tengo sigan a una cuenta que yo les ordene? por ejemplo tengo 500 cuentas y quiero que todas sigan al mismo tiempo a pepito y asi pepito tedria 500 followers, lo mismo quisiera hacer con los likes, agregar una linea que haga que esas 500 cuentas mias, le den a like a una publicacion en concreto que yo les proporcione mediante el link o lo que sea, si podrias explicarme como hacer esto seria excelente! Muchas gracias de antemano

    • @trecno
      @trecno  3 года назад

      ¡Hola! Gracias por comentar.
      Sí que habría alguna manera. Podrías hacer un bucle for que itere por el array de cuentas, y lo que puedes hacer es o bien abrir con selenium una ventana distinta para cada cuenta e ir usando una tras otra, (también se podría pensar en hacerlo en paralelo para que usé todas o bastantes a la vez y así vaya más rápido), o bien hacerlo solo con una ventana y usar en ajustes de la web de Instagram la opción de cambiar de cuenta para iniciar sesión desde ahí en otra cuenta en cada iteración.
      Espero que te sirva. Para cualquier cosa estoy a tu disposición. Un saludo.

  • @Chiro.D6
    @Chiro.D6 2 года назад +1

    holaa amigo ¿cómo sería pero con likes para los comentarios de ig?

    • @Chiro.D6
      @Chiro.D6 2 года назад +1

      es que me gustaría crear bots para que le den me gusta a un comentario

    • @trecno
      @trecno  2 года назад

      ¡Hola! Gracias por comentar.
      Se me ocurre que tu bot podría hacer lo siguiente:
      drive.get('URL DEL POST EN EL QUE QUIERES COMENTAR') # Ir al post para comentar
      Después habría que dar like, aquí muestro el Xpath del corazón del primer comentario y del segundo
      //*[@id="mount_0_0_WP"]/div/div[1]/div/div[2]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/div[1]/ul/ul[1]/div/li/div/span/div/button
      //*[@id="mount_0_0_WP"]/div/div[1]/div/div[2]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/div[1]/ul/ul[2]/div/li/div/span/div/button
      Como se puede ver, lo que cambia es esto:
      //*[@id="mount_0_0_WP"]/div/div[1]/div/div[2]/div/div/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/div[1]/ul/ul['*AQUÍ HAY QUE PONER EL NÚMERO DEL COMENTARIO*']/div/li/div/span/div/button
      Así que con el Xpath puedes hacer que click tal y como esta en este vídeo.
      Finalmente habría que hacer scroll para cargar más comentarios, te dejo esta respuesta de github: stackoverflow.com/questions/12293158/page-scroll-up-or-down-in-selenium-webdriver-selenium-2-using-java?answertab=trending#tab-top
      Nota: Al hacer click en el corazón habría que asegurarse que no hubiese sido clicado previamente, para no quitar el like.
      Espero haberte ayudado. Para cualquier duda o sugerencia estoy a tu disposición. Un saludo.

  • @jjpatersonpaterson6638
    @jjpatersonpaterson6638 3 года назад +2

    Trecno, sera que podrias hacer el mismo codigo pero que entre a perfiles que ponga en una lista y que a estos solo les de like y les guarde la ultima publicacion subida

    • @trecno
      @trecno  3 года назад

      ¡Hola!
      Sí que podría, gracias por la sugerencia.
      Un saludo :)

  • @eduardoandresavila5051
    @eduardoandresavila5051 3 года назад +2

    amigo a mi me reconoce la caja de texto de comentarios por escribe el comentario y tampoco da like

    • @trecno
      @trecno  3 года назад

      ¡Hola! Antes que nada gracias por comentar.
      Instagram de vez en cuando va cambiando la estructura HTML y el CSS, es por ello que igual el XPATH o el selector CSS no coinciden con el código del vídeo o de la descripción.

    • @eduardoandresavila5051
      @eduardoandresavila5051 3 года назад +1

      @@trecno amigo, tenes algun correo para contactarte?

    • @trecno
      @trecno  3 года назад

      @@eduardoandresavila5051 Sí, trecno.info@gmail.com (pero no lo suelo consultar a menudo)

  • @srwolfcoder
    @srwolfcoder 2 года назад +1

    Hola mi gente, veo que hay algunas cosas que ya están depreciadas, alguien que haya logrado actualizar el código funcional y me pueda hacer el grande favor de compartirlo, mil gracias

    • @trecno
      @trecno  2 года назад

      Lamento no tener el código actualizado, pero si tuviese que poner al día los códigos de todos mis vídeos no acabaría nunca 😅
      Si alguien lo comparte...