如何使用Python+Selenium保存Telegram的LocalStorage实现自动登录?
如何用Selenium保存Telegram的LocalStorage数据
Selenium没有直接操作LocalStorage的API,但可以通过执行JavaScript来读取和写入LocalStorage数据。以下是完整的保存与恢复代码:
保存LocalStorage数据
和你保存Cookies的方式一致,我们可以用pickle把LocalStorage的键值对序列化后保存到文件:
import pickle # 执行JavaScript获取LocalStorage所有键值对 local_storage = driver.execute_script(""" const storageData = {}; for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); storageData[key] = localStorage.getItem(key); } return storageData; """) # 将数据写入文件 pickle.dump(local_storage, open(f"{Login1}_localstorage", "wb"))
加载LocalStorage数据
后续登录时,需要把保存的LocalStorage数据恢复到浏览器中:
import pickle import json # 读取本地保存的LocalStorage数据 local_storage = pickle.load(open(f"{Login1}_localstorage", "rb")) # 执行JavaScript将数据写入LocalStorage for key, value in local_storage.items(): # 用JSON转义处理特殊字符,避免JS语法错误 driver.execute_script(f"localStorage.setItem('{key}', {json.dumps(value)});")
注意事项
- 必须在Telegram网页完全加载完成后,再执行LocalStorage的读取或写入操作,否则可能获取不到目标存储项。
- 如果存储的内容包含特殊字符(比如单引号、换行符),一定要用
json.dumps()转义,避免JavaScript执行报错。
内容的提问来源于stack exchange,提问作者Ambamamba
相关产品推荐
相关产品推荐

