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 기술 블로그 전체 게시글 수를 빠르게 확인하는 데 효과적입니다. 추가로 크롤링된 데이터를 기반으로 통계, 트렌드 분석 등을 진행할 수도 있습니다.
사용 결과

