ValvePython的实现导致Shell重新启动而没有错误

时间:2018-09-19 16:48:05

标签: python python-3.x post python-requests steam

今年早些时候,我编写了一个脚本(Python 3.7)来执行以下操作:

  • 使用urllib从here下载/存储所有来自英语的单词

然后循环:

1)随机选择一个单词(random.choice)

2)将其用作Google图片的搜索查询

3)使用BeautifulSoup,选择1到5之间的随机图像结果并下载

4)将其上传为我的蒸汽个人资料照片(从浏览器复制/粘贴了提供的sessionidsteamLoginsteamLoginSecure)。

此脚本效果很好。最近,我想自动获取步骤4所需的cookie,因此我实现了使用SteamValve package与Steam服务进行交互的步骤1.5。

这就是问题所在。我添加的代码非常简单:

def GetCookies():
    client = SteamClient()
    client.cli_login()
    webCookies = client.get_web_session_cookies()
    if webCookies == None:
        raise Exception("Unable to get web session. Try again later.")
    return {"steamLogin": webCookies.get("steamLogin"),
            "steamLoginSecure": webCookies.get("steamLoginSecure"),
            "sessionid": str(client.session_id),
            "steamid": str(client.steam_id)}

我的脚本运行良好,但现在会静默失败。该脚本将停止运行,并显示“ RESTART:Shell”。使用cmd,它只是关闭。没有引发任何错误。通过使用打印,我已经能够确定它总是发生在我脚本中的三个urlopen语句之一中(步骤0,步骤2或步骤3)。它在第4步(上传)上永远不会失败。当失败时,我无法捕获任何错误。同样,它并不总是在同一地点失败。如果我在第0步之前致电GetCookies(),则该步骤通常会失败。如果我随后将呼叫移至该位置,则通常会通过所有步骤,然后第二次在步骤2上失败,然后第一次失败。但是有时它会经过第2步,然后在第3步失败。GetCookies()总是成功运行。

基本上,它在失败的地方是不一致的,并且不会引发任何错误。唯一一致的是它在urlopen语句上失败,并且仅在调用GetCookies()之后失败。我尝试在在线调试器中运行代码,但代码从未崩溃。是什么原因导致我的脚本在实现GetCookies()之后,特别是在urlopen语句后静默失败?我尝试将GetCookies()移到另一个文件。我应该运行另一个线程还是其他东西?来自GetCookies()的一些持续过程是否会导致开销并导致程序崩溃?

该脚本有点长,但是我可以根据需要对其进行编辑。对于可以如何防止这些无提示重启的任何建议,我将不胜感激。

0 个答案:

没有答案