【发布时间】:2020-05-02 18:24:05
【问题描述】:
可能是一个愚蠢的问题。当然这是我的代码的问题,但实际上我卡住了,甚至不知道在哪里搜索。
我想从一个使用电视节目的频道获取消息和照片。 我收到的消息没有问题。现在,我尝试获取照片(如果消息中有的话)。
所有消息都存储在一个名为messages的列表中。
这是我下载照片的代码:
for i, cur_mes in enumerate(messages) :
print(i)
print(cur_mes.date)
print(cur_mes.message)
if cur_mes.photo :
print(cur_mes.photo)
with client :
try :
client.download_media(cur_mes.photo,"./img/"+str(cur_mes.date)+".jpg")
except FloodWaitError as ee:
e = str(ee)
time.sleep(int(re.search(r'\d+', e).group()))
client.download_media(cur_mes.photo,"./img/"+str(cur_mes.date)+".jpg")
此代码下载第一张照片。然后它因错误而停止:
telethon.errors.rpcbaseerrors.AuthKeyError: RPCError 406: FILEREF_UPGRADE_NEEDED(由 GetFileRequest 引起)
我不明白“AuthKeyError:RPCError 406:FILEREF_UPGRADE_NEEDED”。 如果我试图捕捉它(因为它表明 RPCErrors 甚至可能在服务器端),代码将继续工作,但所有照片(除了第一张)都是空的。
更新: 正如@Lonami 在 cmets 中所说的那样,这是版本问题。我很确定要最新,以至于我没想过要检查它。
pip3 install telethon --upgrade
解决了问题。
【问题讨论】:
-
您似乎使用的是旧版本的库。尝试升级,因为已知 Telegram 在旧版本中有损坏的文件。
-
哇!非常感谢。我做错了什么,因为我确信我使用的是最新的。但实际上,我检查了一下,它是旧的 1.4.3。我将安装新版本,我会回来确认它是否解决了问题。无论如何,非常感谢。
-
好的,是版本问题。我很抱歉这么傻而不检查它。非常感谢@Lonami。