게시판 전체 글 개수 파악 Python 스크립트

AWS 기술 블로그 기준. 변형하여 다른 사이트에도 사용 가능.

Python
import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0 Safari/537.36"
}

def count_blog_posts(base_url, max_pages=100):
    total_count = 0
    for page_num in range(1, max_pages + 1):
        if page_num == 1:
            url = base_url  # 첫 페이지는 별도 URL
        else:
            url = f"{base_url}/page/{page_num}/"
        
        response = requests.get(url, headers=headers)
        if response.status_code != 200:
            print(f"페이지 {page_num} 접근 실패, 종료합니다.")
            break

        soup = BeautifulSoup(response.text, 'html.parser')

        posts = soup.find_all('h2', class_='blog-post-title')
        count = len(posts)
        if count == 0:
            print(f"페이지 {page_num}에 글이 없습니다. 크롤링 종료.")
            break

        total_count += count
        print(f"페이지 {page_num} 글 개수: {count}, 누적 합계: {total_count}")

    return total_count

base_url = "https://aws.amazon.com/ko/blogs/tech"
total_posts = count_blog_posts(base_url)
print(f"전체 게시글 수(추정): {total_posts}")

사용법 및 참고 사항

  • AWS 공식 블로그는 크롤링 차단 방지를 위해 User-Agent 헤더를 반드시 지정해야 함.
  • 첫 페이지는 별도의 URL 없이 기본 URL로 접근하고, 그 이후에는 /page/2//page/3/ 식으로 페이징 처리됨.
  • 글 제목이 포함된 HTML 구조에 맞게 h2.blog-post-title 태그를 기준으로 글 개수를 세도록 함.
  • 글이 없는 페이지가 나오면 자동으로 크롤링 종료.
  • 최대 페이지 수 설정(max_pages)으로 무한 루프 방지 가능.
  • 실제 글 개수와 약간의 차이가 있을 수 있으나, 전체 글 수 추정에 유용.

이 스크립트는 WP 포스트에 코드로 직접 삽입하거나, 블로그 글 설명에 포함해 활용하기 좋으며, AWS 기술 블로그 전체 게시글 수를 빠르게 확인하는 데 효과적입니다. 추가로 크롤링된 데이터를 기반으로 통계, 트렌드 분석 등을 진행할 수도 있습니다.

사용 결과


게시됨

카테고리

작성자

태그: