一种将电报数据(用户、聊天、信息和媒体)下载到数据库中(并显示保存的数据)的工具。

telegram-export的Python项目详细描述


电报导出

Logo

下载电报数据(用户、聊天、信息和媒体)的工具 进入数据库(并显示保存的数据)。

数据库架构:

Schema image

安装

最简单的方法是运行sudo pip3 install --upgrade telegram_export, 在这之后,电报导出应该可以作为命令使用:telegram-export 在终点站。就这样!

如果不喜欢使用sudo pip,可以使用pip3 install --user telegram_export, 但是您必须在$path中添加类似~/.local/bin/的内容才能获得 可用的命令。如果不想添加到路径,也可以使用 python3 -m telegram_export任何地方,而不是telegram-export。你会的 如果你用的是virtualenv也有类似的问题,但是如果你用的是 你可能知道你在做什么:)

下载速度慢?

您也可以使用相同的方法安装cryptg,以提高速度 下载媒体时增强。电报需要大量加密 解密,这会使下载文件特别慢,除非 使用像cryptg这样的快速库。一个用户报告了一个speed increase of 1100%

用法

首先,将config.ini.example(从github)复制到~/.config/telegram-export/config.ini 编辑一些值。您可能需要创建此文件夹。写你的 配置白名单,您可能需要引用 telegram-export--list-dialogs获取对话框ID或 telegram-export--search <query>以筛选结果。

然后运行telegram-export并允许它转储数据。

完整选项列表:

usage: __main__.py [-h] [--list-dialogs] [--search-dialogs SEARCH_STRING]
                   [--config-file CONFIG_FILE] [--contexts CONTEXTS]
                   [--format {text,html}] [--download-past-media]

Download Telegram data (users, chats, messages, and media) into a database
(and display the saved data)

optional arguments:
  -h, --help            show this help message and exit
  --list-dialogs        list dialogs and exit
  --search-dialogs SEARCH_STRING
                        like --list-dialogs but searches for a dialog by
                        name/username/phone
  --config-file CONFIG_FILE
                        specify a config file. Default config.ini
  --contexts CONTEXTS   list of contexts to act on eg --contexts=12345,
                        @username (see example config whitelist for full
                        rules). Overrides whitelist/blacklist.
  --format {text,html}  formats the dumped messages with the specified
                        formatter and exits.
  --download-past-media
                        download past media instead of dumping new data (files
                        that were seen before but not downloaded).

电报导出vstelegram-history-dump

(For brevity we’ll just refer them to as “export” and “dump”)
  • sqlite而不是jsonline允许更强大的查询和 效率更高,但与文本操作unix不兼容 作为数据的工具不是作为文本存储的(或者更强大的工具 就像jq)。
  • export的存储数据比dump的json转储要简单得多
  • 支持保存个人或其他对话框的历史记录,因此 可以看到他们的名字。
  • 使用telethon 而不是tg-cli允许 支持新的电报功能,如固定消息、管理日志, 用户bios,一流的超级组支持,避免了 tg-cli使转储通道不可能的错误,以及 其他一些烦恼(比如 安装)。
  • 比dump更新且不太成熟
  • 还没有专门的分析程序(dump有电报分析和 活塞)
  • 实现了转储不支持的功能(不完整列表):
    • 管理日志
    • 将用户/频道/聊天作为自己的实体转储,而不仅仅是 消息元数据。这允许用户bios、通道 描述和个人资料图片。
    • 固定消息(dump类型支持此功能,但仅通过保存 用文本“pinned the”回复固定邮件的邮件 信息“)
    • 参与者列表
  • 理论上,与telegram api的更紧密的交互允许 速度改进(Times Soon™的实际比较)
  • 导出的数据库文件绑定到用户(如dump),并且 程序将退出,如果你登录作为另一个人,以避免混合 一切顺利。如果对多个用户使用导出,则应 为每个用户指定不同的数据库。您可以轻松选择 通过--config-file的不同配置文件。

限制

  • 仍在努力。它会丢弃一些东西,但是模式可能会改变,我们 不支持旧架构转换。
  • 依赖于telethon<;https://github.com/lonamiwebs/telethon>;,它仍然是1.0之前的版本。
  • 为了简单起见,某些信息不会被丢弃。例如, 编辑的邮件将不会被重新下载,并且当前没有 在数据库中支持消息的多个版本。然而,这 应该不是什么大问题,因为大多数编辑或删除都是 合法的,并且经常修正错误。
它是做什么的?是机器人吗?

它使用Telegram API(Telegram应用程序使用的是什么),因此它可以访问 电报应用程序能做的一切。这就是为什么您需要一个api id和api 散列来使用它,以及为什么来自telegram桌面的一个可以工作。自从 普通客户端需要下载消息、媒体、用户等来显示 在应用程序中,电报导出也可以这样做,并将它们保存到 数据库。

所以不,它不是真正的机器人,但它使用的技术和 userbots以便工作。据我们所知,它不会禁止你 用电报之类的。

从源安装

git clone此存储库,然后python3 setup.py install。你应该 同时阅读Installation部分以获取相关注释。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
servlets Java EE+GlassFish:如果用户在其他地方登录,则强制用户注销   java在不更改源代码的情况下添加钩子   安卓 Java TextView Onclick()返回表达式错误   java Excel文件未使用Apache存储内部内存   java getRowCount()和getSelectedColumn()不起作用   无法在java中生成视图绑定。util。Android Gradle插件2.1的NoTouchElementException   Java中的类型转换运算符百分比计算为零   主java中的调用方法   java在Javasound中播放多个示例   java如何知道webDriver成功打开URL   java jmock,每次调用时返回新对象   eclipse使用Java在Selenium WebDriver中生成可执行文件   macos捆绑Java OS X应用程序默认为MacRoman编码   java我应该把我的休息网关变成一个图书馆吗?   java Eclipse插件:查找包含子字符串的行号无效   Java IOException:在Linux上发送UDP数据包时没有可用的缓冲区空间   java无法解析jaxbxjc2中的名称“xjc:globalJavaType”。2.52.罐子   java是否有HibernateAPI来检查是否创建了数据库?