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

爬虫工具概览
该爬虫工具从 Telegram 的公开群组中采集消息数据。Telegram 群组/聊天爬虫工具可以采集在群组中发言的用户,或者采集关于他们加入群组的服务通知。您可以采集所需群组的所有内容,包括:文本、图片、视频链接,获取发布日期、作者信息(姓名、个人资料链接、头像)。
其工作逻辑与其他爬虫工具不同,因为它会自动添加查询以遍历群组中的所有消息。因此,该爬虫工具不能在同一个任务中与其他任何爬虫工具一起使用。
得益于内置强大的 Template Toolkit 模板引擎,您可以按所需的格式和结构保存结果,该引擎允许对结果应用额外逻辑并以各种格式输出数据,包括 JSON、SQL 和 CSV。
爬虫工具应用案例
🔗 用户抓取
抓取 Telegram 公开群组的用户
🔗 抓取所有消息
抓取 Telegram 公开群组的所有消息
采集的数据
以下是针对公开 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 - 正则表达式标志
下载示例
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 posts | 1000 | 该参数指定连续出现多少个空(不存在)消息时,停止当前查询的数据抓取 |
| Start message number | 1 | 该参数指定从 Telegram 聊天中的哪个编号开始采集消息 |