当前位置: 首页 > 知识库问答 >
问题:

蟒蛇脚本(红色编辑器机器人)在 http 错误/超时时重置变量

帅银龙
2023-03-14

坦率地说...我对Python还很陌生。我有一个reddit机器人,可以在我主持的子编辑中阅读一个指定的帖子。基于响应的语法,它回复并存储变量(例如,评论者姓名、增量数字、已经看到)。

如果reddit超时或出现500/504错误,我的机器人会重置其变量。下次成功加载文章时,它会将所有用户评论视为新的,并再次回复它们。

此外,我通过暂时断开我的互联网进行了测试。一旦重新连接,机器人就会做同样的事情。

有没有一种方法可以让机器人等待,并仍然记得它已经看到并回复了预先存在的帖子?

非常感谢您对此的任何帮助,谢谢。

对于我所有的搜索和浏览,这是我想出的(再次,我是新手):

except(IOError):
    time.sleep(30)
    pass

共有2个答案

丁经国
2023-03-14

如果你想让它记住这些帖子,那么一旦它回复/看到用户的帖子,你就可以把它添加到你的代码中。

posts = dict()
# some code reading or replying to the comments
posts.setdefault(user, []).append(post) # get posts[user] if it exists, if not create it with a list value, then append the post.
# some of your other code to check if it's in the dictionary

就像也许

for post in posts:
    ...
姬经义
2023-03-14

一种方法是使用试捕获块包装互联网访问代码。如果页面提取失败,则跳过当前循环并继续下一次迭代

伪代码:

while True:
  content = None
  try:
    content = fetch_content # might have error
  except:
    continue
  # do reply logic

  sleep(5)
 类似资料:
  • 我使用TextInputLayout进行登录过程,这是我的java代码: pass_l.SetErrorEnabled(true);pass_l.seterror(getString(r.string.错误_pass)); 当它显示错误时,编辑文本的背景变红,它不显示下面的错误,类似于这样: 我怎样才能解决这个问题?我不希望edittext改变背景色,只需要像往常一样在edittext下面显示错误

  • 在Bluemix上使用Node-Red编辑器时,我添加了一个超文本传输协议请求节点。但是,当我点击“部署”时,我看到以下错误: 有没有其他方法可以找出可能出错的地方,并获得更有帮助的错误信息? 以下是我使用的选项: 该URL来自JSONPlaceHolder,这是一个免费的在线REST测试服务。 谢谢你

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 脚本编辑器让你创建和编辑脚本,准备和运行已选择的脚本。拖放或双击右侧的“标识符”窗格的一个标识符来将它添加到编辑器中。 【提示】当你使用查找创建工具或聚合创建工具创建查询时,脚本将会在脚本编辑器中自动生成。 Navicat 提供广泛的高级功能,例如:编辑代码功能、智能自动完成代码、设置脚本格式及更多。 设置脚本格式 若要更改脚本格式,简单地从“格式”菜单选择 - 缩进 为已选择的代码行增加或减少缩

  • 我正在使用selenium webdriver和Java。7/10次我的脚本失败,出现错误: scriptTimeoutException:脚本超时 我试过很多种选择: 增加等待时间 尝试了方法jsWaitForPageToLoad并验证了js.executescript(“”return document.readyState“”).ToString().equals(“complete”) 等