Heim >Backend-Entwicklung >Python-Tutorial >Scraping neuer Telegram-Kanäle
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 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.
Beginnen wir damit, die erforderlichen Bibliotheken zu importieren und eine Funktion einzurichten, um die neuesten Daten abzurufen und in einer CSV-Datei zu speichern.
import requests import csv from datetime import datetime import time
Hier richten wir eine Funktion ein, die:
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)
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
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!