見出し画像

インスタ自動いいねはプログラミングで作れる【初心者でも簡単】

私のような完全な非IT人間には難しそうですが、プログラミングを覚える事で自動いいねを自作していくことはそれほどハードルが高い事ではないようです。

比較的簡単にできるようなので、ぜひ参考にして作成してみてください。

以下引用:TAKEIHO

インスタグラムの自動いいねツールの作り方
既に作っている人が公開しているのでそれを利用しています。

https://github.com/instagrambot/instabot

これをForkして自分用にアレンジしたものを使っています。

※Apache License 2.0なので商用利用なども可能です。

それでは早速作成手順行ってみましょう。

1.リポジトリをCloneまたはForkしてローカルに落とす
gitを使っている人には説明不要かと思いますが簡単にやるならCloneしてくればOKです。

git clone https://github.com/instagrambot/instabot.git
僕は他にも色々試してみたいことがあったのでとりあえずForkしておきました。

※ただ、インスタグラムの仕様変更か急に使えなくなったこともあってその場合にForkしてると修正取り込むのが少し面倒だったりしました。

2.一部のファイルを修正する
修正を加えるファイルは以下の2つです。

修正するファイル
examples > like_hashtags.py
instabot > bot > bot_like.py
それぞれ以下の部分を修正しています。

bot = Bot()
bot.login(username=args.u, password=args.p,
proxy=args.proxy)

# ここから下を追加と修正
tags = ["ここに","いいねしたい","タグを","入力しておく"]
wait = 25 * 60 # in seconds => 25 minutes
retry = 5 * 60 * 60 # in hours => 5 hours

while True:
try:
for hashtag in tags:
bot.like_hashtag(hashtag)
sleep(wait)
except:
sleep(retry)
指定した回数のいいねをしたら25分間停止、予想外のエラーなどが発生した場合は5時間停止という設定です。

以前にアカウントの停止などをやたら食らったのでこのように少し安全を重視した設定にしています。

def like_medias(self, medias, check_media=True):
broken_items = []
if not medias:
self.logger.info("Nothing to like.")
return broken_items
self.logger.info("Start Logging")
self.logger.info("Going to like %d medias." % (len(medias)))
start_count = self.total['likes'] # この行追加
for media in tqdm(medias):
if not self.like(media, check_media):
self.error_delay()
broken_items.append(media)
self.logger.info("Total Like:" + str(self.total['likes']))
if self.total['likes'] != start_count and self.total['likes'] % 20 == 0: # この行追加/ここで一回につきどれだけいいねするかを制御
break
self.logger.info("DONE: Total liked %d medias." % self.total['likes'])
return broken_items
ここでは1度にいいねする件数を設定しています。

この場合だと20いいねしたら処理を中断するようにしています。

上記と同じような修正をした場合ざっくりと1日で960いいねを自動で行なってくれる計算になります。

3.バックグラウンドで実行するようにして放置
上記の書き方は無限ループの書き方をしているのPythonをずっと動かし続ける必要があります。

そのため、レンタルサーバーやラズパイ、Cloud9など24時間動かし続けられる環境があるとベターです。

そういった環境がない場合はスクリプトを少し変えて、単発で実行するようにしてWindowsスケジューラーやCronなどで定期的に処理を実行するようにすると良いです。

スポンサードリンク

同様にして自動フォローや自動フォロー解除も実現可能
今回は自動いいねのコードのみを紹介しましたが、instabotでは自動フォローや自動フォロー解除、コメント、自動投稿など様々な処理が可能となっています。

そのため、Pythonが読み書きできる人であればそれなりに自分の思うようなツールを作成することが可能です。

※僕自身最初は自動フォローや自動フォロー解除も組み込んでいましたが、アカウントが凍結されかけたりしたことが多々あって現在は自動いいねだけを回しています。

自動いいねであれば現状アカウント凍結などのレベルには至らないようです。(といっても1日に数千もいいねしたらさすがにアウトだとは思いますが)

誰でもインフルエンサーになれる時代

インフルエンサーという言葉が流行りだしてからしばらく経ちますが、最近ではインフルエンサーがインフルエンサーになりたい人たちから金を巻き上げてたりしますよね。

新しい市場が拓けたという見方をすればそれはそれで良しなのですが、個人的には情弱からの搾取の形にしか見えないんですよね。

また、実際にSNSマーケティングの知識を活用して行動すればフォロワーを増やすこと自体は可能だとは思いますが、実践するのはなかなか骨が折れます。。

僕自身SNSを活用しようと思ったことは多々ありますが、一度も成功したことないです。

ただ、成功体験はしたいということで今回のようなツールに頼る結果となりました。

このツールを使えば実際にフォロワーを数倍に増やすこと自体は可能なのでぜひ試してみてください。

以下引用:俺が人生を楽しむためのブログ

以下が、私が書いたコードです。

※以下のコードを実行して何か問題が起きても、私は一切の責任をとりません。

インスタグラムは、アカウントによっても凍結の基準が異なるみたいです。私も試しに使っていたときに1度凍結されました。以下のコードはその時よりも凍結されにくく作っていますが、何か問題が起こるかもしれません。

from selenium import webdriver
from selenium.common.exceptions import WebDriverException
from selenium.webdriver.common.action_chains import ActionChains
import time
import random

def login():
	driver.get('https://www.instagram.com/accounts/login/?source=auth_switcher')
	f = open('insta.txt','a')
	f.write("instagramにアクセスしました\n")
	f.close()
	time.sleep(1)

 #メアドと 、パスワードを入力
	driver.find_element_by_name('username').send_keys('ここにID')
	time.sleep(1)
	driver.find_element_by_name('password').send_keys('ここにパスワード')
	time.sleep(1)

 #ログインボタンを押す 
	driver.find_element_by_class_name('L3NKy       ').click()
	time.sleep(random.randint(2, 5))
	f = open('insta.txt','a')
	f.write("instagramにログインしました\n")
	f.close()
	time.sleep(1)

def tagsearch(tag):
	instaurl = 'https://www.instagram.com/explore/tags/'
	driver.get(instaurl + tag)
	time.sleep(random.randint(2, 10))
	f = open('insta.txt','a')
	f.write("listtagより、tagで検索を行いました\n")
	f.close()
	time.sleep(1)

def clicknice():
	target = driver.find_elements_by_class_name('_9AhH0')[10]
	actions = ActionChains(driver)
	actions.move_to_element(target)
	actions.perform()
	f = open('insta.txt','a')
	f.write("最新の投稿まで画面を移動しました\n")
	f.close()
	time.sleep(1)

	try:
		driver.find_elements_by_class_name('_9AhH0')[9].click()
		time.sleep(random.randint(2, 10))
		f = open('insta.txt','a')
		f.write("投稿をクリックしました\n")
		f.close()
		time.sleep(1)
		driver.find_element_by_class_name('fr66n').click()
		f = open('insta.txt','a')
		f.write("投稿をいいねしました\n")
		f.close()
		time.sleep(1)

	except WebDriverException:
		f = open('insta.txt','a')
		f.write("エラーが発生しました\n")
		f.close()
		return

	for i in range(random.randint(3, 5)):
		try:
			driver.find_element_by_class_name('coreSpriteRightPaginationArrow').click()
			f = open('insta.txt','a')
			f.write("次の投稿へ移動しました\n")
			f.close()
			time.sleep(random.randint(random.randint(2, 5), random.randint(10, 15)))

		except WebDriverException:
			f = open('insta.txt','a')
			f.write("2つ目の位置でエラーが発生しました\n")
			f.close()
			time.sleep(5)

		try:
			driver.find_element_by_class_name('fr66n').click()
			f = open('insta.txt','a')
			f.write("投稿をいいねしました\n")
			f.close()
			time.sleep(2)
		except WebDriverException:
			f = open('insta.txt','a')
			f.write("3acつ目の位置でエラーが発生しました\n")
			f.close()

if __name__ == '__main__':
	
	taglist = ['f4f', 'l4l','like4like', 'instagood','followme', 'follow', 'いいね返し']

	while True:
		driver = webdriver.Chrome('ここにパス')
		time.sleep(1)
		login()

		tagsearch(random.choice(taglist))
		clicknice()

		driver.close()

		abc = random.randint(random.randint(20, 100), random.randint(120, 1800))
		f = open('insta.txt','a')
		f.write(str(abc)+"秒待機します\n")
		f.close()
		time.sleep(abc)
​

この記事が気に入ったらサポートをしてみませんか?