Ich habe mein eigenes Instagram-Tool wie Ruby [Ruby] erstellt.

Einführung

Ich möchte die Anzahl der Instagram-Follower erhöhen. Aber ich möchte nicht so viel Zeit verbringen. Bezahlte Instagram-Tools scheinen teuer zu sein ...

Deshalb habe ich versucht, ein Programm zu erstellen, das es automatisch mag!

Zielperson

Umwelt als ich mich entwickelte

version 
Ruby 2.6.3
gem 3.0.3
Homebrew 2.5.2 

Entwicklungsverfahren

Installieren Sie zuerst den Selen-Treiber.

Selen ist ein Browser-Automatisierungstool. Sie können den Browser automatisch bedienen. Basierend auf einem in Ruby, Pyhon usw. geschriebenen Skript wird ein JavaScript zum Bedienen des Browsers generiert und das JavaScript in die Zielseite eingebettet, um den Browser zu bedienen.

Referenzartikel https://app.codegrid.net/entry/selenium-1

Selen-Treiber installieren

gem install selenium-webdriver 

Installieren Sie dann den Chrome-Treiber. Chrome-Treiber ist ein Treiber (Software), der für den Betrieb von Google Chrome erforderlich ist. Für jeden Browser wird ein dedizierter Treiber vorbereitet.

Chrome-Treiber installieren

brew install chrome-driver

Übergeben Sie dann den Chrome-Treiberpfad.

$ echo export PATH=' ●●(:$PATH'  >> ~/ .bash_profile

Als nächstes implementieren Sie es.

Ganze Quelle

insta_auto.rb


require 'selenium-webdriver'
require 'uri'

class InstagramBot
  attr_accessor :driver
  def initialize(username,password)
    
  end

  def good_hashtag(key_word,number)
   
  end

  def good_user_post(username,number)
   
  end

end
username = ""
password = ""
bot = InstagramBot.new(username,password)
key_word = ""
bot.good_hashtag(key_word,15)
# username = ""
# bot.good_user_post(username,15)

Anmeldefunktion

insta_auto.rb


 def initialize(username,password)
    #Abkürzung
    ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'
    puts "aaaaaaaaaaa"
    caps = Selenium::WebDriver::Remote::Capabilities.chrome('chromeOptions' => { args: ["--user-agent=#{ua}", 'window-size=1280x800', '--incognito'] }) #Geheimmodus
    puts "vbbbbbbb"
    client = Selenium::WebDriver::Remote::Http::Default.new
    client.read_timeout = 300
    @driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps, http_client: client
    @driver.manage.timeouts.implicit_wait = 30
    @driver.navigate.to'https://www.instagram.com/accounts/login/?source=auth_switcher'
    puts "ddddd"
    @driver.find_element(:name, 'username').send_keys(username)
    @driver.find_element(:name, 'password').send_keys(password)
    sleep 1
    @driver.find_element(:name, 'password').send_keys(:return)
  end

Wie das angegebene Hash-Tag

insta_auto.rb


def good_hashtag(key_word,number)
    encode_word = URI.encode(key_word)
    sleep 3
    @driver.navigate.to"https://www.instagram.com/explore/tags/#{encode_word}/"
    sleep 2
    @driver.execute_script("document.querySelectorAll('article img')[9].click()")
    sleep 2
    number.times{
      begin
        @driver.execute_script("console.log(document.querySelectorAll('button.wpO6b')[1].click())")
        sleep 2
      rescue
        puts "already good this post"
      end
      sleep 2
      @driver.execute_script("document.querySelector('a.coreSpriteRightPaginationArrow').click()")
      sleep 2
    }
  end

Fügen Sie dem angegebenen Benutzer ein Hash-Tag hinzu

insta_auto.rb


def good_user_post(username,number)
    sleep 3
    @driver.navigate.to"https://www.instagram.com/#{username}/"
    sleep 2
    @driver.execute_script("document.querySelectorAll('article img')[0].click()")
    sleep 2
    number.times{
      begin
        @driver.execute_script("document.querySelectorAll('span.glyphsSpriteHeart__outline__24__grey_9')[1].click()")
      rescue
        puts "already good this post"
      end
      sleep 2
      @driver.execute_script("document.querySelector('a.coreSpriteRightPaginationArrow').click()")
      sleep 2
    }
  end

Zusammenfassung

Der Aufbau der Entwicklungsumgebung hat lange gedauert. Auf der anderen Seite gab es viele nützliche Artikel über das Schreiben des Quellcodes, so dass ich keine großen Probleme hatte und gerettet wurde. Was mein Hautgefühl angeht, denke ich, dass viele Programmieranfänger sagen: "Ich lerne bis zu einem gewissen Grad eine Sprache, aber wenn es darum geht, eine Umgebung aufzubauen, betrete ich allmählich das Feld." Für mich, der gerade die Programmierschule abgeschlossen hat, war es ziemlich schwierig, eine Umgebung von Grund auf neu zu erstellen Ich muss ziemlich viele Artikel durchgehen und Versuch und Irrtum machen. Also habe ich dieses Mal einen "Artikel gemacht, der eine Reihe von Flüssen systematisiert" für Leute wie mich! Ich bin froh, wenn Sie es als Referenz verwenden können.

Es wird auch gemunkelt, dass Ihr Konto möglicherweise von Instagram gelöscht wird, wenn Sie diese automatische Instagram-ähnliche Funktion zu häufig verwenden. Bitte benutzen Sie es auf eigenes Risiko!

Referenzartikel:

https://qiita.com/nirs_kd56/items/6979a026497f2f4a59bf https://qiita.com/FJHoshi/items/c847ad51af388d2dbb4a https://qiita.com/y-agatsuma/items/ea2c9845ee0a931d5c9c

Recommended Posts

Ich habe mein eigenes Instagram-Tool wie Ruby [Ruby] erstellt.
Ich habe meinen eigenen mit Ruby erstellten Blackjack für mein Portfolio aktualisiert
Ich habe ein Tool zur Generierung von package.xml erstellt.
Ich habe meinen eigenen PC für tiefes Lernen gemacht. (Windows 10, Ubuntu18.04 Dual Boot)
[Ruby] Ich habe einen einfachen Ping-Client erstellt
Ich habe verschiedene Funktionen der Fibonacci-Sequenz (Ruby) erstellt.
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein neues Java-Bereitstellungstool erstellt
Ich habe ein Diff-Tool für Java-Dateien erstellt
Ich habe mit Ruby einen Blackjack gemacht (ich habe versucht, Minitest zu verwenden)
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Ich habe mit Ruby On Rails ein Portfolio erstellt