hfuob
@hfuob (慎也)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

【エラーの解消】Instabotでインスタグラムの運用を自動化したい

解決したいこと

Windows10のコマンドプロンプト(Python実行環境)でインスタグラムを自動で運用するためのPythonコードを実行するとエラーになります。
解消方法をご存知でしたらご教示お願いいたします。

発生している問題・エラー

特定のInstagramユーザーを指定してフォローしたい場合

user_name = "name1"
bot.follow(user_name)
を実行した後に下記のエラーが表示されます。

参考URL:https://di-acc2.com/system/rpa/19260/

>>> user_name = "name1"
>>> bot.follow(user_name)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot.py", line 831, in follow
    return follow(self, user_id, check_user)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot_follow.py", line 6, in follow
    user_id = self.convert_to_user_id(user_id)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot.py", line 660, in convert_to_user_id
    return convert_to_user_id(self, usernames)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot_get.py", line 491, in convert_to_user_id
    x = self.get_user_id_from_username(x)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot.py", line 603, in get_user_id_from_username
    return get_user_id_from_username(self, username)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\bot\bot_get.py", line 207, in get_user_id_from_username
    self.api.search_username(username)
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\api\api.py", line 1529, in search_username
    return self.send_request(url)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\user\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\instabot\api\api.py", line 441, in send_request
    self.session.headers.update(config.REQUEST_HEADERS)
    ^^^^^^^^^^^^
AttributeError: 'API' object has no attribute 'session'
>>>

Pythonコード

from instabot import Bot	
import os	
import shutil	
	
	
def clean_up(i):	
    dir = "config"	
    remove_me = "imgs\{}.REMOVE_ME".format(i)	
    # checking whether config folder exists or not	
    if os.path.exists(dir):	
        try:	
            # removing it so we can upload new image	
            shutil.rmtree(dir)	 
        except OSError as e:	
            print("Error: %s - %s." % (e.filename, e.strerror))	
    if os.path.exists(remove_me):	
        src = os.path.realpath("imgs\{}".format(i))	
        os.rename(remove_me, src)	
	
	
def upload_post(i):	
    bot = Bot()	
	
    bot.login(username="username", password="password")	
    bot.upload_photo("imgs/{}".format(i), caption="Caption for the post")	
	
	
if __name__ == '__main__':	
    # enter name of your image bellow	
    image_name = ""	
    clean_up(image_name)	
    upload_post(image_name)	def greet
  puts Hello World
end

bot = Bot()


#特定のInstagramユーザーを指定してフォローしたい場合
# フォローしたいユーザー名
user_name = "name1"

# フォロー
bot.follow(user_name)
0

1Answer

取り急ぎ確認したいことがあります。ユーザIDとパスワードが直に書かれているのですが、こちらは公開しても問題ないように実在しない、IDとパスワードでしょうか?
もし、そのまま張り付けてしまっているなら、適当な文字列に変更することをお勧めします。

リンク先を見て書いただけで動作確認はしてません。もしそれでもよろしければ下記の対応策を試してみてください。

①replから実行するなら
見たところ、コマンドラインでpythonと打った後に表示される画面でコードを書いてるように見えます。この画面において実行させるならまずはインスタにログインをさせないといけません。下記のようなコードを試してはいかがでしょう?

repl.py
>>> from instabot import Bot
>>> bot = Bot()
>>> bot.login(username="user_name", password="password") # ログイン用のもの
>>> user_name = "artistryjapan"
>>> bot.follow(user_name)

②pythonファイルを編集するなら
pythonファイルから実行するなら下記のように編集したほうがいいです。もともとのpythonファイルの一部分つけ加えて書き換える感じですね。

follow.py
def follow_user(user_name):	
    bot = Bot()	
    bot.login(username="user_name", password="password") # ログイン用のもの
    bot.follow(user_name)
	
	
if __name__ == '__main__':	
    follow_user("user_name")
2Like

Your answer might help someone💌