728x90
강의 4: 티스토리 글 목록 필터링 및 처리
목표
이 강의의 목표는 크롤링한 티스토리 블로그의 글 목록에서 특정 조건에 맞는 글을 필터링하고, 원하는 데이터를 추출하는 방법을 학습하는 것입니다. 이 과정에서 Python의 BeautifulSoup와 datetime 모듈을 사용하여 웹 페이지에서 데이터를 크롤링하고, 특정 날짜 이후에 작성된 글을 필터링하는 방법을 배웁니다.
내용
- BeautifulSoup로 파싱한 데이터의 처리
- HTML 파싱: 먼저, 웹 페이지의 HTML 구조를 이해하고 BeautifulSoup을 사용해 HTML을 파싱합니다. 이를 통해 블로그 글 목록을 가져오는 방법을 익힙니다.
- 데이터 추출: 파싱한 HTML에서 필요한 정보를 추출합니다. 예를 들어, 글의 제목, URL, 작성 날짜 등을 추출합니다.
- 특정 조건에 따라 필터링하기
- 조건 설정: 글 목록에서 원하는 데이터를 필터링하기 위해 특정 조건을 설정합니다. 이번 강의에서는 특정 날짜 이후에 작성된 글만 추출하는 방법을 배웁니다.
- Python의 날짜 및 시간 처리 라이브러리 사용: Python의 datetime 모듈을 사용하여 날짜를 비교하고 필터링합니다. 이 모듈을 통해 글의 작성 날짜를 기준으로 필요한 글만 선택할 수 있습니다.
- 글 목록에서 최근 글만 필터링하여 처리
- 필터링 및 출력: 필터링된 글 목록을 출력하거나 추가적으로 처리하는 방법을 학습합니다. 이렇게 필터링된 데이터를 기반으로 다양한 후속 작업을 수행할 수 있습니다.
실습: 특정 날짜 이후 작성된 블로그 글 목록 가져오기
이제 위의 내용을 기반으로 실습을 진행해보겠습니다. 목표는 특정 날짜 이후에 작성된 티스토리 블로그 글 목록을 가져오는 것입니다.
FilterDemo.ipynb 라는 노트를 만들어서 작업 진행합니다.
import requests
from bs4 import BeautifulSoup
from datetime import datetime
# 티스토리 블로그 URL 설정
blog_url = "https://atomicdev.tistory.com"
# 웹 페이지 가져오기
response = requests.get(blog_url)
# 상태 코드 확인 (200은 성공을 의미)
if response.status_code == 200:
# BeautifulSoup을 사용하여 HTML 문서 파싱
soup = BeautifulSoup(response.content, 'html.parser')
# 글 목록이 포함된 article 태그를 찾음
articles = soup.find_all('article', class_='article-type-common')
# 필터링 기준 날짜 설정 (예: 2024년 8월 15일 이후의 글만 가져오기)
filter_date = datetime.strptime("2024-08-15", "%Y-%m-%d")
# 각 글의 제목, URL, 작성 날짜 추출 및 필터링
for article in articles:
title_tag = article.find('strong', class_='title')
title = title_tag.get_text(strip=True) # 글 제목
url = article.find('a', class_='link-article')['href'] # 글 URL
full_url = f"{blog_url}{url}" # 전체 URL 생성
date_str = article.find('span', class_='date').get_text(strip=True) # 작성 날짜 문자열
article_date = datetime.strptime(date_str, "%Y.%m.%d") # 문자열을 datetime 객체로 변환
# 특정 날짜 이후 작성된 글만 출력
if article_date > filter_date:
print(f"Title: {title}")
print(f"URL: {full_url}")
print(f"Date: {article_date.strftime('%Y-%m-%d')}")
print("-" * 40)
else:
print(f"Failed to retrieve the blog page. Status code: {response.status_code}")
실습 설명
- 웹 페이지 가져오기: requests 라이브러리를 사용하여 티스토리 블로그 페이지의 HTML을 가져옵니다.
- HTML 파싱 및 데이터 추출: BeautifulSoup으로 HTML을 파싱한 후, article 태그에서 글 제목, URL, 작성 날짜 등의 데이터를 추출합니다.
- 날짜 필터링: datetime 모듈을 사용하여 설정한 날짜(예: 2024년 8월 15일) 이후에 작성된 글만 필터링합니다.
- 결과 출력: 필터링된 글의 제목, URL, 작성 날짜를 출력하여 결과를 확인합니다.
요약
이 강의를 통해 웹 크롤링을 통해 수집한 데이터에서 특정 조건에 따라 데이터를 필터링하고, Python의 datetime 모듈을 사용하여 날짜 비교와 필터링 작업을 수행하는 방법을 학습했습니다. 이러한 기술은 다양한 웹 데이터 수집 및 분석 작업에 유용하게 활용될 수 있습니다.
728x90
'Python과 ChatGPT API를 활용한 자동화 로봇 개발' 카테고리의 다른 글
6_Python과 ChatGPT API를 이용한 블로그 자동화 프로그램 개발 (2) | 2024.08.15 |
---|---|
5_Python과 ChatGPT API를 이용한 블로그 자동화 프로그램 개발 (38) | 2024.08.15 |
3_Python과 ChatGPT API를 이용한 블로그 자동화 프로그램 개발 (29) | 2024.08.15 |
2_Python과 ChatGPT API를 이용한 블로그 자동화 프로그램 개발 (37) | 2024.08.15 |
1_Python과 ChatGPT API를 이용한 블로그 자동화 프로그램 개발 (33) | 2024.08.15 |