> 백엔드 개발 > 파이썬 튜토리얼 > 새로운 텔레그램 채널 스크래핑

새로운 텔레그램 채널 스크래핑

Barbara Streisand
풀어 주다: 2024-11-09 22:12:02
원래의
377명이 탐색했습니다.

Scraping New Telegram Channels

Python 및 GroupFind API를 사용하여 매일 새로운 전보 채널 스크래핑

텔레그램 채널은 매일 성장하고 있으며 최신 채널을 찾으면 최신 커뮤니티와 인기 주제에 대한 통찰력을 얻을 수 있습니다. GroupFind API를 사용하면 매일 새로운 채널을 쉽게 가져와서 분석이나 모니터링을 위해 CSV로 저장할 수 있습니다. 이 튜토리얼에서는 이 프로세스를 자동화하기 위한 간단한 Python 스크립트를 안내해 드리겠습니다.

그룹찾기 API

GroupFind API는 새로 나열된 Telegram 그룹을 검색하기 위한 엔드포인트를 제공합니다.

https://api.groupfind.org/api/groups?skip=0&sort=newest
로그인 후 복사

이 엔드포인트는 groupTitle, 카테고리, memberCount, 태그 등과 같은 필드가 포함된 JSON 형식의 데이터를 반환합니다. 우리는 이 데이터를 사용하여 CSV를 구축하고 매일 새로운 목록으로 업데이트할 것입니다.

Python 스크립트 설정

먼저 필요한 라이브러리를 가져오고 최신 데이터를 가져와서 CSV 파일로 저장하는 기능을 설정해 보겠습니다.

1단계: 필수 라이브러리 가져오기

import requests
import csv
from datetime import datetime
import time
로그인 후 복사

2단계: 데이터를 가져오고 저장하는 함수 정의

여기에서는 다음과 같은 기능을 설정합니다.

  1. API에 GET 요청을 보냅니다.
  2. 관련 데이터를 추출합니다.
  3. 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에 내장된 시간 모듈을 사용하여 단순화하거나 서버에서 크론 작업으로 설정할 수 있습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿