【问题标题】:Instabot API for Python raises error after running code for the 2nd timeInstabot API for Python 在第二次运行代码后引发错误
【发布时间】:2021-05-02 16:43:40
【问题描述】:

我目前正在使用适用于 python 的 Instabot API,但遇到了以下问题:

我写了一个小程序:

from instabot import Bot

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

bot.follow("lego")

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

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

我收到以下回溯(代码在名为“Instagram 自动化”的 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'  

【问题讨论】:

  • 解决症状(不是原因)的简单解决方案是从代码中删除 config 文件夹。
  • 您能否提供完整的错误消息,包括回溯。不清楚ds_user 在这里是什么。
  • @Programmer 我也想过,但这似乎不是一个优雅的解决方案,这就是我创建这个问题的原因
  • @astrochun 给你:我在原始帖子中添加了回溯,如果您需要其他内容,请告诉我
  • 我认为这与其他 SO 问题类似:stackoverflow.com/questions/66794193/cant-login-with-instabot。这能解决吗?

标签: python instagram instagram-api


【解决方案1】:

据我所知,您唯一能对抗症状的方法是始终删除 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

instabot 的开发者应该修复问题的来源,例如使用self.cookie_dict.get("ds_user", "some default value") 而不是self.cookie_dict["ds_user"]

【讨论】:

  • 非常感谢您提出的解决方案,它对我来说很好用!正如您提到的,这可以由开发人员修复:我是否可以在相应的文件中自己修复此问题的根源?
  • @FelixBack 当然,您可以将cookie_username = self.cookie_dict["ds_user"] 替换为cookie_username = self.cookie_dict.get("ds_user", "")。只有您每次更新模块时都必须重做,因为它会被旧的错误版本覆盖。但除此之外,您应该向instabot 的开发人员提交错误报告。
  • 好吧,我会继续,修复它并提交错误报告。再次感谢,你真的帮了我很多!
  • 感谢您的解决方案。我在这里有同样的问题。这里的“file.json”是配置文件吗?我在 csv 中有一个配置文件,我在配置文件夹中根本看不到任何 json 文件
  • @Chubaka 很抱歉没有尽快回复 - 我认为删除 CSV 文件应该具有相同的效果,因为它只是存储相同数据的不同方式。
猜你喜欢
  • 2017-11-24
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2020-11-10
  • 2018-01-27
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
相关资源
最近更新 更多