LoginSignup
0
2

More than 3 years have passed since last update.

インスタグラム自動いいねツールを自分で作ってみた【Ruby】

Posted at

はじめに

インスタグラムのフォロワーを増やしたい。けどそんなに時間を掛けたくない。有料インスタグラムツールは料金が高そうだし、、

という訳で自動的にいいねをつけることができるプログラミングを組んでみました!

対象者

  • 手軽にインスタグラムのフォロワー数を増やしたい人
  • プログラミング学習初心者

僕が開発した時の環境

version 
Ruby 2.6.3
gem 3.0.3
Homebrew 2.5.2 

開発手順

まずはselenium-driverをインストールします。

seleniumとはブラウザのオートメーションツールです。自動でブラウザを操作することができます。Ruby、Pyhonなどで書かれたスクリプトを元に、ブラウザを操作するためのJavaScriptを生成し、対象のページにそのJavaScriptを埋め込んでブラウザを操作するという仕組みです。

参照記事
https://app.codegrid.net/entry/selenium-1

selenium-driverのインストール

gem install selenium-webdriver 

次にchrome-driverをインストールします。
chrome-driverとは、Google Chromeを操作するために必要なドライバ(ソフト)です。ブラウザごとに専用のドライバが用意されています。

chrome-driverのインストール

brew install chrome-driver

次にchrome-driverのパスを通します。

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

次に実装します。

全体のソース

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)

ログイン機能

insta_auto.rb
 def initialize(username,password)
    # 略
    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'] }) # シークレットモード
    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

指定のハッシュタグにいいねをつける

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

指定のユーザーにハッシュタグをつける

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

まとめ

開発環境の構築にかなり時間がかかってしまいました。一方でソースコードの記述に関しては参考になる記事がたくさん出てきたのであまり苦労せず助かりました。
僕の肌感覚ですが、プログラミング初心者は「言語はある程度勉強しているけど環境構築に関しては現場に入って徐々に」という方が多いのではないかと思います。プログラミングスクールを卒業したばかりの僕には環境構築を一からというのはかなり骨が折れました笑
かなり色んな記事を飛び回って試行錯誤しなければいけないので。
なので今回は僕のような方を対象にした「一連の流れを体系化した記事」を作りました!参考になれば幸いです。

また、噂ですがあまりこのインスタ自動いいね機能を使いすぎるとInstagramからアカウントが削除される可能性もあるとのこと。
使う際は自己責任でお願いします!

参照記事:

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

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2