Telegram Story Scraper 📱
一个Python脚本,允许您使用Telethon库自动抓取和下载Telegram好友的故事。该脚本持续监控并保存故事中的照片和视频,以及它们的元数据。

TGSS - 主界面
关于故事访问的重要说明 ⚠️
由于Telegram API的限制,此脚本仅能访问以下用户的故事:
- 您已添加到好友列表的用户
- 隐私设置允许您查看其故事的用户
这是Telegram API的限制,无法绕过。
功能 🚀
- 自动抓取所有可用的Telegram好友故事
- 下载故事中的照片和视频
- 将元数据存储在SQLite数据库中
- 将数据导出到Excel电子表格
- 实时监控,可自定义间隔时间
- 时间戳设置为(UTC+2)
- 记录已下载的故事
- 断点续传能力
- 自动重试机制
前提条件 📋
在运行脚本之前,您需要:
- Python 3.7 或更高版本
- Telegram 账户
- 来自Telegram的API凭证
- 您想要追踪其故事的Telegram好友
所需的Python包
pip install -r requirements.txt
requirements.txt 的内容:
telethon
openpyxl
schedule
获取Telegram API凭证 🔑
- 访问 https://my.telegram.org/auth
- 使用您的手机号码登录
- 点击“API development tools”
- 填写表单:
- App title:您的应用名称
- Short name:您的应用简称
- Platform:可保留为“Desktop”
- Description:应用的简要描述
- 点击“Create application”
- 您将获得:
api_id:一个数字
api_hash:一串字母和数字
请妥善保管这些凭证,运行脚本时需要用到它们!
设置与运行 🔧
- 克隆仓库:
git clone https://github.com/unnohwn/telegram-story-scraper.git
cd telegram-story-scraper
- 安装依赖:
pip install -r requirements.txt
- 运行脚本:
- 首次运行时,系统会提示您输入:
- 您的API ID
- 您的API Hash
- 您的电话号码(含国家代码)
- 验证码(发送到您的Telegram)
- 检查间隔时间(秒,默认60秒)
工作原理 🔄
脚本:
- 连接到您的Telegram账户
- 定期检查好友的新故事
- 下载任何新故事(照片/视频)
- 将元数据存储在SQLite数据库中
- 将信息导出到Excel文件
- 持续运行直到中断(Ctrl+C)
数据存储 💾
数据库结构(stories.db)
SQLite数据库包含:
user_id:故事创建者的Telegram用户ID
story_id:唯一的故事标识符
timestamp:故事发布时间(UTC+2)
filename:已下载媒体的本地文件名
CSV和Excel导出(stories_export.csv/xlsx)
导出文件包含与数据库相同的信息,可用于:
- 轻松查看故事元数据
- 筛选和排序
- 数据分析
- 与他人共享数据
媒体存储 📁
- 照片保存为:
{user_id}_{story_id}.jpg
- 视频以原始扩展名保存:
{user_id}_{story_id}.{extension}
- 所有媒体文件保存在脚本所在目录
功能详解 🔍
持续监控
- 可自定义检查间隔(默认:60秒)
- 持续运行直到手动停止
- 在运行之间保持状态
- 避免重复下载
媒体处理
- 支持照片和视频
- 自动检测媒体类型
- 保留原始质量
- 生成唯一文件名
错误处理 🛠️
脚本包含:
- 失败下载的自动重试机制
- 失败操作的错误日志记录
- 连接错误处理
- 中断时的状态保存
限制 ⚠️
- 受Telegram速率限制约束
- 故事必须处于有效状态(未过期)
- 媒体下载大小限制适用Telegram的规定
贡献 🤝
欢迎贡献!请随时提交拉取请求。
许可证 📄
本项目采用MIT许可证 - 详情请参阅LICENSE文件。
免责声明 ⚖️
此工具仅用于教育目的。请确保:
- 遵守Telegram的服务条款
- 在抓取前获得必要权限
- 负责任且合乎道德地使用
- 遵守数据保护法规
- 尊重用户隐私