Telegram 频道每天都在增长,找到最新的频道可以让您深入了解热门社区和热门话题。使用 GroupFind API,我们可以轻松地每天提取新频道并将其保存到 CSV 中以供分析或监控。在本教程中,我将引导您完成一个简单的 Python 脚本来自动执行此过程。
GroupFind API 提供了一个用于检索新列出的 Telegram 群组的端点:
https://api.groupfind.org/api/groups?skip=0&sort=newest
此端点返回 JSON 格式的数据,包含 groupTitle、category、memberCount、tags 等字段。我们将使用这些数据来构建 CSV,并每天更新新列表。
让我们首先导入必要的库并设置一个函数来提取最新数据并将其保存到 CSV 文件。
import requests import csv from datetime import datetime import time
在这里,我们将设置一个函数:
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)
为了让这个脚本每天自动运行,为了简单起见,我们可以使用 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()
以上是抓取新的 Telegram 频道的详细内容。更多信息请关注PHP中文网其他相关文章!