Telegram::GroupScraper - Scraper för offentliga kanaler och grupper i Telegram

Översikt över scrapern
Denna scraper samlar in alla inlägg och meddelanden från offentliga kanaler och grupper i Telegram.
Arbetslogiken skiljer sig från andra scrapers: den går automatiskt igenom meddelanden i en kanal eller grupp. På grund av detta kan den inte användas tillsammans med andra scrapers i samma uppgift.
Ordningen på raderna i resultatet garanteras inte baserat på inläggsnummer (beror på trådar). Metadata för chatt/kanal laddas en gång per kanal och dupliceras på varje rad för inlägget.
Resultaten kan sparas i den form och struktur du behöver, tack vare den inbyggda kraftfulla mallmotorn Template Toolkit som gör det möjligt att tillämpa ytterligare logik på resultaten och exportera data i olika format, inklusive JSON, SQL och CSV.
Användningsfall för scrapern
🔗 Dataskrapning av användare
Dataskrapning av användare i offentliga grupper på Telegram
🔗 Dataskrapning av alla meddelanden
Dataskrapning av alla meddelanden från offentliga grupper på Telegram
Insamlade data
Fungerar med offentliga kanaler och grupper.
Meddelande
- Länk till inlägget (
url) - Inläggets ID (
post_id) - Användarnamn för kanalen/gruppen utan
@(channel) - Inläggets text med HTML (
message_text) - Samma text utan HTML (
message_text_plain) — för filter, sökning och utmatning - Datum i ISO-format (
message_date) - Visningar (
views) — som i Telegram:15.5K,1.2Metc.; endast för kanaler, för grupper — tomt - Meddelande om video (
message_video_notice) — om inlägget innehåller en video, men arrayenmessage_videossaknar URL, och detta fält är ifyllt: videon kan endast ses i Telegram under ditt eget konto (kräver auktorisering), det finns ingen direktlänk till filen. Detta är inte ett fel i insamlingen — Telegram lämnar inte ut sådana videor utan inloggning på ett konto
Författare till inlägget
- Länk till profil (
user_link) - Namn (
user_name) - URL till avatar (
user_avatar)
Vidarebefordran
- Varifrån det vidarebefordrats (
forward_from) - Länk till källan (
forward_from_url) — URL till originalet, om tillgänglig - Förklaring vid saknad länk (
forward_from_notice) — fylls i omforward_from_urlär tom (t.ex. "Source link not available in embed"): direktlänk saknas, originalet kan ha raderats, dolts eller vara otillgängligt av annan anledning. Inte ett fel i scrapern
Svar (reply)
- URL till meddelandet som besvaras (
reply_to_url) - Inläggets ID från URL:en (
reply_to_post_id) - Författare till ursprungsmeddelandet (
reply_to_author) - Text från ursprungsmeddelandet, plain (
reply_to_text)
Reaktioner
- Summan av alla reaktioner (
reactions_total) — siffra som sträng;K/M/Bräknas om
Metadata för chatt/kanal
Laddas ner en gång per kanal, dupliceras i varje rad för inlägget.
- Namn (
chat_title) - Antal prenumeranter/medlemmar (
chat_members) - Online (
chat_online) — endast för grupper; antal användare online vid tidpunkten då insamlingen för kanalen påbörjades, uppdateras inte under dataskrapning. För kanaler — tomt - Beskrivning, plain text (
chat_description) - Räknare för media och länkar (
chat_photos,chat_videos,chat_files,chat_links) — endast för kanaler
Arrayer
reactions — fälten emoji, count (som i Telegram: 16, 1.2K). Vem som gett reaktionen samlas inte in: endast emoji-typ och totalt antal är tillgängliga
message_photos — fältet url; album — flera rader.
message_videos — fältet url. Om URL saknas men inlägget innehåller video — se message_video_notice (visning endast efter inloggning i Telegram)
links — fältet url; externa länkar från inläggets text. Länkar av typen t.me/username utan sökväg hamnar inte här (dessa är mentions).
mentions — fältet username (@username); från länkar t.me/username och texten @username i <a>.
Funktioner
- Flexibel normalisering av frågor (se Frågor)
- Filter efter datum (
dateFrom,dateTo) och vidarebefordrade meddelanden (skipForwards) - Foto- och videoalbum — flera URL:er i ett inlägg
Användningsområden
- Insamling av innehåll från inlägg i kanaler eller grupper
- Övervakning av reaktioner, visningar och vidarebefordringar
Frågor
Offentliga kanaler och grupper stöds. Alla format konverteras till https://t.me/{username}:
| Sökfråga | Beteende |
|---|---|
@username | kanal eller grupp, start från Start message number |
username | samma |
https://t.me/username | samma |
t.me/username | samma |
https://t.me/s/username | samma |
https://t.me/username/123 | kanal eller grupp, start från inlägg #123 (Start message number ignoreras) |
Ogiltig fråga → rad i loggen Unknown query, tomt resultat.
Exempel:
https://t.me/a_parser
@a_parser
https://t.me/a_parser/100
Exempel på resultatutdata
A-Parser stöder flexibel formatering av resultat tack vare den inbyggda mallmotorn Template Toolkit, vilket gör att den kan mata ut resultat i valfri form, såväl som i strukturerad form, till exempel CSV eller JSON.
Standardutdata
Resultatformat:
$channel/$post_id: $message_text_plain ($views views, $reactions_total reactions)
Exempel på resultat:
a_parser/1234: detta är filter) ( views, 0 reactions)
a_parser/85962: Google har rullat ut något nytt skydd) ( views, 2 reactions)
Utdata till CSV-tabell
Resultatformat:
[% tools.CSVline(channel, post_id, message_text_plain, views, reactions_total) %]
Exempel på resultat:
a_parser,1234,"detta är filter)",,0
a_parser,85962,"Google har rullat ut något nytt skydd)",,2
Filtrering och hopp över inlägg
En rad hamnar inte i resultatet om:
- Datumet ligger utanför intervallet Date from / Date to
- Skip forwards är aktiverat och inlägget är vidarebefordrat
Vid filter efter datum eller forward betraktas inlägget som hittat, och genomgången av kanalen fortsätter.
Genomgången av kanalen stoppas när:
- efter det senast hittade inlägget har Max empty posts antal ID:n i följd kontrollerats utan nya fynd;
- eller en serie tomma inlägg från början (om inget inlägg hittats ännu).
Bearbetning av resultat
A-Parser gör det möjligt att bearbeta resultat direkt under dataskrapning. I det här avsnittet har vi listat de mest populära fallen för Telegram-scrapern.
Filtrering av resultat baserat på ord i meddelandet

Du behöver lägga till ett filter och välja $message_text - Message text i rullgardinslistan. Välj typen RegEx match.
I fältet för regex skriver du in ett reguljärt uttryck med de nödvändiga orden:
\bscraper\b|\bGoogle\b|\byandex\b|\bscraper\b|\bProxy\b|\bDorkar\b
\b - ordgräns
| - ELLER
is - regex-flagga
Ladda ner exempel
Hur man importerar ett exempel i 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=
Möjliga inställningar
| Parameter | Standardvärde | Beskrivning |
|---|---|---|
| Max empty posts | 1000 | Hur många tomma ID:n i följd som ska testas efter det senast hittade inlägget innan genomsökningen av kanalen stoppas. Detta är inte en gräns för sparade inlägg |
| Start message number | 1 | Numret på inlägget som genomsökningen ska börja från (om /123 saknas i frågan) |
| Skip forwards | ☐ | Spara inte vidarebefordrade meddelanden |
| Date from | Datum från, inklusive. Format YYYY-MM-DD | |
| Date to | Datum till, inte inklusive. Format YYYY-MM-DD |