偏差値38でもできるpython講座
こんにちは。
偏差値38の高校から大学卒業、
現在は大手人材会社で働きながらwebショップを運営している23歳です。
前回、インフルエンサーを目指しませんか?という内容で記事を書きました。
本日はフォロワーを1日当たり1〜2名増やす方法をお伝えします。
pythonで自動いいね!ツールを作ってみた。
運用するまでの全体象をお伝えします。
STEP1
・環境構築
・エディタのインストール
STEP2
・Seleniumとchromedriverのインストール
・フォルダ、ファイル作成
STEP3
・コードをファイルにコピペ
・ターミナルを開いてフォルダとファイル名を指定する。
では、早速いきましょう。
不明な点があれば下部のメールにてお問い合わせください!
STEP1
環境構築とは・・・
簡単にいうと、いつでもどこでもPythonのコードを書き、
自分の好きなプログラムを開発するための環境をPC上に作ることです。
インターネット上にプログラムを公開し、ブラウザ経由で誰もがアクセスできるようにするためには、インターネットに接続されたコンピュータ、つまりサーバーが必要です。
サーバーはレンタルサーバーやVPS, クラウドなどいくつかの種類がありますが、多くの場合はLinuxというOSにより動作しています。
しかし、多くの方はWindowsかMacいずれかのPCを使用しています。
これらはそれぞれWindows, OSXといったOSを搭載しています。
もちろんそういった環境で開発をすることはできますが、結局サービスを公開するにはLinuxで動作するサーバーに、プログラムが記述されたファイル群をアップロードしなければなりません。
そして、WindowsやOSX上で正しく動作したからといって、
Linux上でも正しく動作するとは限りません。
そのため、開発する環境(自分のPC)と、
公開する環境(サーバー)のOSを揃える必要があります。
エディタとは・・・
一言でいうと、「何かを編集するときに使うソフトのこと」です。
エディタという用語は、
基本的には「○○エディタ」という形で登場します。
例えば「テキストエディタ」と呼ばれるソフトがあります。
テキストエディタは、テキストファイル(中身が文字だけのファイル)を編集するときに使うソフトの総称です。
今回使用する「Atom」などが、テキストエディタに分類されます。
STEP2
・Seleniumとchromedriverをインストールする
Seleniumとは・・・
Seleniumとは、Webブラウザを使ってWebアプリケーションをテストするツールです。
この「Webブラウザを使って」というのが非常に大きなポイントで、人が手でWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるのです。
そして単純に操作するだけでなく、例えばエラーメッセージが正しく表示されているかといった検証も行うことができます。
つまり、今まで人手を必要としていたWebブラウザを使った試験が自動化できるものなのです。そのため数百項目もあるテストも、クリック1回で実施できます。
chromedriverとは・・・
ChromeDriverとは、Google Chromeを操作するために必要なドライバ(ソフト)です。
ブラウザごとに専用のドライバが用意されていますが、
今回はGoogle Chromeを操作します。
ChromeDriverはこちらからダウンロードできます。
ブラウザのバージョンに合ったドライバを選んでください。
STEP3
・自動いいねをするコードをファイルに写す
デスクトップ上にinsta-autoというフォルダを作ります。
そして、insta-auto.pyというファイルを作ってinsta-autoフォルダに入れておきます。(他のファイルに関してはなくても問題ないです。)
insta-auto.pyというファイルに下記、コードをコピペしてください。
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)
#インスタグラムIDと、パスワードを入力
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(5, 10)):
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 = ['l4l', 'いいね返し']
while True:
driver = webdriver.Chrome('/usr/local/bin/chromedriver')
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)
・Pythonプログラムを実行する。
ターミナルを開いて、以下のコマンドを入力します。
cd Desktop/insta-auto/
これでデスクトップのinsta-autoフォルダに移動します。
python insta-auto.py
下記、例です。
そして、insta-auto.pyファイルを実行(エンターキー押下)します。
すると、ターミナルが開いてchromeブラウザが自動的に立ち上がり処理が始まっていきます。
下記の動画になればOKです。