第二次运行代码后,适用于 Python 的 Instabot API 引发错误

Fel*_*ack 2 python instagram instagram-api

我目前正在使用 Python 的 Instabot API,遇到了以下问题:

我写了一个小程序:

from instabot import Bot

bot = Bot()
bot.login(username = "[my username]", password = "[my passowrd]")

bot.follow("lego")
Run Code Online (Sandbox Code Playgroud)

第一次运行后效果很好。但是,在第二次运行该程序(这次是跟随另一个帐户)后,它引发了错误(“KeyError:ds_user”)。

可以通过删除项目文件夹内的 config 文件夹来修复此错误。不幸的是,这不是一个非常可持续的解决方案,因为它使得编写代码变得非常困难。因此,我想知道是否有任何解决方案可以让程序多次运行,而不必一遍又一遍地删除配置文件夹。

我收到以下回溯(代码在名为“Instagram Automation”的 anaconda 环境中运行):

Traceback (most recent call last):
  File "e:/Programme/OneDrive/Dokumente/Projekte/Instagram Automation/main.py", line 4, in <module>
    bot.login(username = "[my username]", password = "[my password]")
  File "E:\Programme\Anaconda\envs\Instagram Automation\lib\site-packages\instabot\bot\bot.py", line 443, in login
    if self.api.login(**args) is False:
  File "E:\Programme\Anaconda\envs\Instagram Automation\lib\site-packages\instabot\api\api.py", line 240, in login
    self.load_uuid_and_cookie(load_cookie=use_cookie, load_uuid=use_uuid)
  File "E:\Programme\Anaconda\envs\Instagram Automation\lib\site-packages\instabot\api\api.py", line 199, in load_uuid_and_cookie
    return load_uuid_and_cookie(self, load_uuid=load_uuid, load_cookie=load_cookie)
  File "E:\Programme\Anaconda\envs\Instagram Automation\lib\site-packages\instabot\api\api_login.py", line 352, in load_uuid_and_cookie
    cookie_username = self.cookie_dict["ds_user"]
KeyError: 'ds_user'  
Run Code Online (Sandbox Code Playgroud)

Pro*_*mer 5

据我所知,对抗症状的唯一方法是始终删除 config 文件夹中的 JSON 文件,例如:

import os
if os.path.isfile("path/to/config/file.json"):
    os.remove("path/to/config/file.json")

import instabot
# rest of your code goes here
Run Code Online (Sandbox Code Playgroud)

的开发人员instabot应该解决问题的根源,例如使用self.cookie_dict.get("ds_user", "some default value")而不是self.cookie_dict["ds_user"]