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
Barbara Streisandoriginal
2024-11-09 22:12:02379parcourir

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

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

É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)

É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

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()

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!

Déclaration:
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