최근 블로그 포스트 README에 반영하기카테고리 없음2024. 5. 8. 00:20
Table of Contents
README에 최근 포스트를 같이 나열하게 된 계기
나는 개발도 하고, 블로그에 글도 쓰지만 항상 블로그와 Github가 동떨어진 기분이 들었다.
그래서, 나의 개발 공간을 하나로 합쳐보고자 ! README에 블로그 최근 내역들을 불러오게 되었다.
⛳ 결과물 미리 스포
아래 사진처럼 나의 깃허브 README에 최근 블로그 포스트 내역 4개를 불러올 예정이다.
🧑🏻💻 크롤링 프로그램 작성
우선 크롤링에 필요한 라이브러리들을 설치한다.
pip install requests
pip install beautifulsoup4
그리고 다음과 같이 코드를 작성해주면 되는데, 설명은 아래와 같다.(주석에 설명이 꼼꼼하게 되어있으니 참고 !)
- 블로그에서 최근 포스트를 확인할 수 있는 페이지의 html을 크롤링한다.
- 원하는 태그 요소를 찾아 필요한 내용을 파싱한다.
- README 파일에 반영한다.
- 프로그램을 실행하면 ~ 원하던대로 README 파일이 수정된다 !
import requests
from bs4 import BeautifulSoup
# 크롤링할 웹 페이지의 URL
url = '블로그 주소'
postArr = []
# HTTP GET 요청을 보내고 응답을 받음
response = requests.get(url)
# 응답의 상태코드 확인
if response.status_code == 200:
# HTML을 BeautifulSoup을 사용하여 파싱
soup = BeautifulSoup(response.text, 'html.parser')
# 클래스가 'post'인 모든 div 요소 찾기
post_divs = soup.find_all('div', class_='post')
# 각 div 태그에서 태그 찾아서 href와 text 출력
for div in post_divs:
titleDiv = div.find('div', class_='title')
link = titleDiv.find('a')
postTitle ='['+link.text+']'+'(<https://gani-dev.tistory.com>'+link['href']+')'
postArr.append(postTitle)
# README 파일 경로
file_path = "README.md"
with open(file_path, "r") as file:
# README 파일 내용 읽기
readme_content = file.read()
# "Latest Blog Posts" 아랫부분 위치 찾기
index = readme_content.find("### Latest Blog Posts")
if index != -1:
# "### Latest Blog Posts" 이후의 문자열을 새로운 내용으로 대체
default_readme_content = readme_content[:index + len("### Latest Blog Posts")] + "\\n"
else:
# "### Latest Blog Posts"가 README 파일에 없을 경우 새로운 내용을 README 파일에 추가
default_readme_content = readme_content + "\\n\\n### Latest Blog Posts\\n"
# README 파일 열기 (쓰기 모드)
with open(file_path, "w") as file:
# 새로운 README 내용으로 파일에 쓰기
file.write(default_readme_content)
for post in postArr :
file.write("- "+post+"\\n")
else:
print("HTTP 요청 실패:", response.status_code)
@gani+ :: Gani_Dev :)
꾸준히 기록할 수 있는 사람이 되자 !