跳转到主要内容

Telegram::GroupScraper - Telegram 公开群组数据抓取工具

Telegram

爬虫工具概览

该爬虫工具从 Telegram 的公开群组中采集消息数据。Telegram 群组/聊天爬虫工具可以采集在群组中发言的用户,或者采集关于他们加入群组的服务通知。您可以采集所需群组的所有内容,包括:文本、图片、视频链接,获取发布日期、作者信息(姓名、个人资料链接、头像)。

其工作逻辑与其他爬虫工具不同,因为它会自动添加查询以遍历群组中的所有消息。因此,该爬虫工具不能在同一个任务中与其他任何爬虫工具一起使用。

得益于内置强大的 Template Toolkit 模板引擎,您可以按所需的格式和结构保存结果,该引擎允许对结果应用额外逻辑并以各种格式输出数据,包括 JSON、SQL 和 CSV

爬虫工具应用案例

采集的数据

以下是针对公开 Telegram 频道和 Telegram 群组可以分别采集的数据。

Telegram 频道可采集内容

仅针对公开的 Telegram 频道,可采集以下数据:

  • 消息链接
  • 消息文本
  • 消息图片
  • 消息视频
  • 消息日期

Telegram 群组可采集内容

仅针对公开的 Telegram 群组,可采集以下数据:

  • 消息链接
  • 消息作者姓名
  • 作者个人资料链接
  • 作者头像
  • 消息文本
  • 消息图片
  • 消息视频
  • 消息日期
  • 在群组中发言的成员
  • 来自加入群组服务通知的成员

使用场景

  • 采集群组成员列表
  • 采集群组中所有消息的内容

查询

在查询中需要指定公开频道或群组的链接,例如:

https://t.me/a_parser

结果输出示例

A-Parser 凭借内置的 Template Toolkit 支持灵活的结果格式化,这使其能够以任意形式以及结构化形式(如 CSV 或 JSON)输出结果。

默认输出

结果格式:

$user_name($user_link): $message_text\n

结果示例:

(https://t.me/aparser): 为了绕过单个 IP 10 次请求的限制,需要从主页面额外抓取 key= 从主页面
(https://t.me/aparser): 我现在看看
(https://t.me/aparser): <a href="http://a-parser.com/threads/1795/" target="_blank" rel="noopener">http://a-parser.com/threads/1795/</a>

输出到 CSV 表格

结果格式:

[% tools.CSVline(query, user_link, message_date, message_text) %]

结果示例:

https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:01:09+00:00,"设置 - 保存窗口大小"
https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:14:47+00:00,"我运行了 20 个任务,每个任务 300 个线程,动态限制为 1200,由于它们同时运行,且在查询(线程)剩余较少时没有阻塞,执行速度快得多"
https://t.me/a_parser,https://t.me/Forby403,2016-11-05T05:27:06+00:00,"嗯,包括代理"

结果处理

A-Parser 允许在数据抓取过程中直接处理结果,在本节中我们列出了 Telegram 爬虫工具最受欢迎的案例。

按消息中的关键词过滤结果

示例

需要添加过滤器并在下拉列表中选择 $message_text - Message text。选择类型 RegEx match。 在正则表达式字段中输入包含所需关键词的正则:

\b爬虫工具\b|\bGoogle\b|\byandex\b|\b爬虫工具\b|\b代理\b|\bDorks\b

\b - 单词边界

| - 或

is - 正则表达式标志

下载示例

如何将示例导入 A-Parser

eJyVVN1v2jAQ/18sHjaJ8qFSacobRaLaxEpX6BOg6oovqVfH9myHgTL+952dkMC6
PewhVu53v/v2uWQe3Jt7sOjQO5asSmbiP0uYR4mZhfyK6+0V7iE3ElmXGbAObeCu
2LKmJMmd1YVZbC0YtETimEIhPeuWzB8MkrdUSB9V5D5oEpajc5Dhs8c9EWvCsmJb
zMFvXwnegSwCsl6/rIvB6DqN5yCco+ocRuSmRtYvv+i70zqTWAsHUBz3tfAfToIw
TFvSNcYTzgw+nVNHLak2gIZElWjjhVZUinDsuNmcOuGm2lKxhHfMsFd3v1EuYIdL
XfUPW3hK0j3koTEdDh6DtpdGRx8+9nxsKHAuQkSQVYQwsjbqkxI/YmOVJi79WoFu
anUeJx8dBPBwym7FOlFm5KKItt8qG5akIB12maNUp0CJ8D81ggYLXtt57ADhJdNq
LOUMdyhbWvR/WwjJ6X6NUzL6XBv+nTJ/5+PYlHceaof2p6UcGi9Rup1/ba24numM
KudhUFLkwpPsJrpQYTADAt8QTdOz+9CzXFtswnhbYBOc1smg4kRsJzY2LXRRxcVU
LsGtVqnI5pS/FRxPzEItaWfnaqLDRoayVCElTcXhY3s7xq6eQhCayt8ZT2KIUPlp
Y5nXWroviypVYwXdvpuQYE6NPI9au9yClE+Ps3MNa28UCa/eG5f0+76XYx+eq/eD
BUOPmaYbRWUdN83D0rxF5b+el6Q80si+u4fKIBQY6IRRp1zcseHxN9yRrow=

可选设置

参数默认值描述
Max empty posts1000该参数指定连续出现多少个空(不存在)消息时,停止当前查询的数据抓取
Start message number1该参数指定从 Telegram 聊天中的哪个编号开始采集消息