Telegram::GroupScraper - Telegram公開グループデータスクレイパー

スクレイパーの概要
このスクレイパーは、Telegramの公開グループからメッセージデータを収集します。Telegramグループ/チャットスクレイパーは、グループ内で発言したメンバー、またはグループへの参加に関するシステム通知があるメンバーの収集を実行します。テキスト、画像、動画へのリンク、投稿日、投稿者情報(名前、プロフィールリンク、アバター)など、必要なグループからすべてのコンテンツをスクレイピングできます。
このスクレイパーの動作ロジックは他のスクレイパーとは異なり、グループ内のすべてのメッセージを反復処理するためのクエリを自動的に追加します。そのため、このスクレイパーを1つのタスク内で他のスクレイパーと一緒に使用することはできません。
内蔵された強力なテンプレートエンジン 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): 1つの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,"300スレッドのタスクを20個、動的制限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|\bドーク\b
\b - 単語の境界
| - または(OR)
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チャットのどの番号からメッセージの収集を開始するかを指定します |