Maison > développement back-end > Tutoriel Python > Supprimer de nouvelles chaînes de télégrammes

Supprimer de nouvelles chaînes de télégrammes

Barbara Streisand
Libérer: 2024-11-09 22:12:02
original
377 Les gens l'ont consulté

Scraping New Telegram Channels

Supprimer quotidiennement de nouvelles chaînes de télégrammes avec Python et l'API GroupFind

Les chaînes Telegram se développent chaque jour, et trouver les plus récentes peut vous donner un aperçu des communautés tendances et des sujets populaires. Grâce à l'API GroupFind, nous pouvons facilement extraire quotidiennement de nouvelles chaînes et les enregistrer dans un fichier CSV à des fins d'analyse ou de surveillance. Dans ce tutoriel, je vais vous présenter un simple script Python pour automatiser ce processus.

L'API GroupFind

L'API GroupFind offre un point de terminaison pour récupérer les groupes Telegram nouvellement répertoriés :

https://api.groupfind.org/api/groups?skip=0&sort=newest
Copier après la connexion

Ce point de terminaison renvoie des données au format JSON, avec des champs tels que groupTitle,category, memberCount, tags, etc. Nous utiliserons ces données pour créer notre CSV, en le mettant à jour quotidiennement avec de nouvelles annonces.

Configuration du script Python

Commençons par importer les bibliothèques nécessaires et configurer une fonction pour extraire les dernières données et les enregistrer dans un fichier CSV.

Étape 1 : Importer les bibliothèques requises

import requests
import csv
from datetime import datetime
import time
Copier après la connexion

Étape 2 : Définir la fonction pour récupérer et enregistrer les données

Ici, nous allons configurer une fonction qui :

  1. Fait une requête GET à l'API.
  2. Extrait les données pertinentes.
  3. Écrit ou ajoute à un fichier CSV.
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)
Copier après la connexion

Étape 3 : Automatisez la récupération quotidienne avec un planificateur

Pour automatiser l'exécution quotidienne de ce script, nous pouvons utiliser le module de temps intégré de Python pour plus de simplicité, ou le configurer en tant que tâche cron sur un serveur.

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
Copier après la connexion

Exécuter le script

Exécutez simplement le script et il récupérera chaque jour de nouvelles chaînes Telegram, en les ajoutant à new_telegram_channels.csv. Le fichier accumulera des données au fil du temps, fournissant un enregistrement croissant de nouvelles communautés Telegram.

if __name__ == "__main__":
    run_daily()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal