ホームページ >バックエンド開発 >Python チュートリアル >新しい電報チャネルのスクレイピング

新しい電報チャネルのスクレイピング

Barbara Streisand
Barbara Streisandオリジナル
2024-11-09 22:12:02369ブラウズ

Scraping New Telegram Channels

Python と GroupFind API を使用して毎日新しい電報チャネルをスクレイピング

Telegram チャネルは日々成長しており、最新のチャネルを見つけると、トレンドのコミュニティや人気のトピックについての洞察が得られます。 GroupFind API を使用すると、毎日新しいチャネルを簡単に取得し、分析や監視のために CSV に保存できます。このチュートリアルでは、このプロセスを自動化するための簡単な Python スクリプトについて説明します。

GroupFind API

GroupFind API は、新しくリストされた Telegram グループを取得するためのエンドポイントを提供します。

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

このエンドポイントは、groupTitle、category、memberCount、tags などのフィールドを含むデータを JSON 形式で返します。このデータを使用して CSV を作成し、新しいリストで毎日更新します。

Python スクリプトのセットアップ

必要なライブラリをインポートし、最新のデータを取得して CSV ファイルに保存する関数を設定することから始めましょう。

ステップ 1: 必要なライブラリをインポートする

import requests
import csv
from datetime import datetime
import time

ステップ 2: データを取得して保存する関数を定義する

ここでは、次のような関数を設定します。

  1. API に GET リクエストを送信します。
  2. 関連データを抽出します。
  3. CSV ファイルに書き込むか、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)

ステップ 3: スケジューラを使用して毎日の取得を自動化する

このスクリプトを毎日実行するように自動化するには、簡単にするために Python の組み込み時間モジュールを使用するか、サーバー上で cron ジョブとして設定します。

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

スクリプトの実行

スクリプトを実行するだけで、毎日新しい Telegram チャネルが取得され、new_telegram_channels.csv に追加されます。このファイルは時間の経過とともにデータを蓄積し、新しい Telegram コミュニティの記録を増やしていきます。

if __name__ == "__main__":
    run_daily()

以上が新しい電報チャネルのスクレイピングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。