Rumah >pembangunan bahagian belakang >Tutorial Python >Mengikis Saluran Telegram Baharu

Mengikis Saluran Telegram Baharu

Barbara Streisand
Barbara Streisandasal
2024-11-09 22:12:02369semak imbas

Scraping New Telegram Channels

Mengikis Saluran Telegram Baharu Setiap Hari dengan Python dan GroupFind API

Saluran telegram semakin berkembang setiap hari, dan mencari saluran terbaharu boleh memberi anda cerapan tentang komuniti sohor kini dan topik popular. Menggunakan API GroupFind, kami boleh dengan mudah menarik saluran baharu setiap hari dan menyimpannya ke CSV untuk analisis atau pemantauan. Dalam tutorial ini, saya akan membimbing anda melalui skrip Python mudah untuk mengautomasikan proses ini.

API GroupFind

API GroupFind menawarkan titik akhir untuk mendapatkan semula kumpulan Telegram yang baru disenaraikan:

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

Titik akhir ini mengembalikan data dalam format JSON, dengan medan seperti groupTitle, kategori, ahliCount, teg dan banyak lagi. Kami akan menggunakan data ini untuk membina CSV kami, mengemas kini setiap hari dengan penyenaraian baharu.

Menyediakan Skrip Python

Mari mulakan dengan mengimport perpustakaan yang diperlukan dan menyediakan fungsi untuk menarik data terkini dan menyimpannya ke fail CSV.

Langkah 1: Import Perpustakaan Diperlukan

import requests
import csv
from datetime import datetime
import time

Langkah 2: Tentukan Fungsi untuk Mengambil dan Menyimpan Data

Di sini, kami akan menyediakan fungsi yang:

  1. Membuat permintaan GET kepada API.
  2. Mengekstrak data yang berkaitan.
  3. Menulis atau menambah pada fail 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)

Langkah 3: Automatikkan Pengambilan Harian dengan Penjadual

Untuk mengautomasikan skrip ini untuk dijalankan setiap hari, kami boleh menggunakan modul masa terbina dalam Python untuk kesederhanaan, atau menyediakannya sebagai tugas cron pada pelayan.

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

Menjalankan Skrip

Cuma jalankan skrip, dan ia akan mengambil saluran Telegram baharu setiap hari, menambahkannya pada new_telegram_channels.csv. Fail tersebut akan mengumpul data dari semasa ke semasa, memberikan rekod yang semakin meningkat bagi komuniti Telegram baharu.

if __name__ == "__main__":
    run_daily()

Atas ialah kandungan terperinci Mengikis Saluran Telegram Baharu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn