Heim >Backend-Entwicklung >Python-Tutorial >Scraping neuer Telegram-Kanäle

Scraping neuer Telegram-Kanäle

Barbara Streisand
Barbara StreisandOriginal
2024-11-09 22:12:02368Durchsuche

Scraping New Telegram Channels

Täglich neue Telegram-Kanäle mit Python und der GroupFind-API durchsuchen

Telegram-Kanäle werden täglich größer und wenn Sie die neuesten finden, erhalten Sie Einblicke in angesagte Communities und beliebte Themen. Mithilfe der GroupFind-API können wir ganz einfach täglich neue Kanäle abrufen und diese zur Analyse oder Überwachung in einer CSV-Datei speichern. In diesem Tutorial führe ich Sie durch ein einfaches Python-Skript, um diesen Prozess zu automatisieren.

Die GroupFind-API

Die GroupFind-API bietet einen Endpunkt zum Abrufen neu aufgelisteter Telegram-Gruppen:

https://api.groupfind.org/api/groups?skip=0&sort=newest

Dieser Endpunkt gibt Daten im JSON-Format zurück, mit Feldern wie Gruppentitel, Kategorie, Mitgliedsanzahl, Tags und mehr. Wir verwenden diese Daten, um unsere CSV-Datei zu erstellen und sie täglich mit neuen Einträgen zu aktualisieren.

Einrichten des Python-Skripts

Beginnen wir damit, die erforderlichen Bibliotheken zu importieren und eine Funktion einzurichten, um die neuesten Daten abzurufen und in einer CSV-Datei zu speichern.

Schritt 1: Erforderliche Bibliotheken importieren

import requests
import csv
from datetime import datetime
import time

Schritt 2: Definieren Sie die Funktion zum Abrufen und Speichern von Daten

Hier richten wir eine Funktion ein, die:

  1. Stellt eine GET-Anfrage an die API.
  2. Extrahiert relevante Daten.
  3. Schreibt oder hängt eine CSV-Datei an.
def fetch_and_save_new_telegram_channels():
    url = "https://api.groupfind.org/api/groups?skip=0&sort=newest"
    response = requests.get(url)

    if response.status_code == 200:
        channels = response.json()

        filename = "new_telegram_channels.csv"
        fieldnames = [
            "ID", "Title", "Category", "Member Count", "NSFW", 
            "Description", "Tags", "Profile Photo URL", "Added Date"
        ]

        with open(filename, mode="a", newline="", encoding="utf-8") as file:
            writer = csv.DictWriter(file, fieldnames=fieldnames)

            if file.tell() == 0:
                writer.writeheader()  # Write header only once

            for channel in channels:
                writer.writerow({
                    "ID": channel["id"],
                    "Title": channel["groupTitle"],
                    "Category": channel["category"],
                    "Member Count": channel["memberCount"],
                    "NSFW": channel["isNsfw"],
                    "Description": channel["groupDescription"],
                    "Tags": ", ".join(channel["tags"]),
                    "Profile Photo URL": channel["profilePhoto"],
                    "Added Date": channel["addedDate"]
                })

        print(f"Successfully added {len(channels)} new channels to {filename}.")
    else:
        print("Failed to fetch data. Status code:", response.status_code)

Schritt 3: Automatisieren Sie den täglichen Abruf mit einem Planer

Um dieses Skript so zu automatisieren, dass es täglich ausgeführt wird, können wir der Einfachheit halber das integrierte Zeitmodul von Python verwenden oder es als Cron-Job auf einem Server einrichten.

def run_daily():
    while True:
        print(f"Running script at {datetime.now()}")
        fetch_and_save_new_telegram_channels()
        time.sleep(86400)  # Wait for 24 hours

Ausführen des Skripts

Führen Sie einfach das Skript aus und es ruft jeden Tag neue Telegram-Kanäle ab und hängt sie an new_telegram_channels.csv an. Die Datei wird im Laufe der Zeit Daten ansammeln und so einen wachsenden Datensatz neuer Telegram-Communitys liefern.

if __name__ == "__main__":
    run_daily()

Das obige ist der detaillierte Inhalt vonScraping neuer Telegram-Kanäle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn