Selenium으로 블로그 자동 포스팅 세팅하면 하루 1시간이 생깁니다
솔직히 말할게요. 저도 처음엔 블로그 글 하나 올리는 데 15~20분씩 쓰고 있었어요. 로그인하고, 카테고리 고르고, 태그 달고, 발행 버튼 누르고… 이 반복 작업이 너무 지겨워서 찾다가 발견한 게 바로 Selenium 자동화였습니다. 이 글 읽고 나면 파이썬 조금만 할 줄 알아도 블로그 포스팅을 자동으로 세팅하는 기본 구조를 바로 만들 수 있어요.
① 먼저 이것부터 설치하세요 — 환경 세팅 5분이면 끝납니다
Selenium을 쓰려면 딱 두 가지만 준비하면 됩니다. 파이썬과 크롬 드라이버예요. 처음 해보는 분들이 여기서 막히는 경우가 많은데, 순서대로만 따라오면 진짜 5분 안에 끝나요.
- 파이썬 설치: python.org에서 최신 버전 다운로드 후 설치. 설치 시 "Add Python to PATH" 체크박스 반드시 클릭하세요. 이거 빠뜨리면 나중에 골치 아파요.
- Selenium 설치: 터미널(윈도우는 cmd)에서
pip install selenium입력하면 끝. - webdriver-manager 설치:
pip install webdriver-manager도 함께 설치하세요. 크롬 드라이버 버전 맞추는 작업을 자동으로 해줘서 훨씬 편해요.
설치 완료 후 파이썬 파일 하나 만들어서 아래 코드가 에러 없이 실행되면 세팅 완료입니다.
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.google.com")
print("세팅 완료!")
크롬 창이 뜨면서 구글이 열리면 성공이에요. 여기까지 됐으면 절반은 온 겁니다.
② 로그인 자동화 — 이 코드 구조만 이해하면 어디든 응용됩니다
Selenium의 핵심은 "사람이 브라우저에서 하는 행동을 코드로 대신 시키는 것"이에요. 클릭, 텍스트 입력, 버튼 누르기 — 이 세 가지만 할 줄 알면 로그인은 자동화할 수 있어요.
티스토리 기준으로 예시를 드릴게요. 아이디 입력창을 찾아서 클릭하고, 아이디를 타이핑하고, 비밀번호 입력 후 로그인 버튼을 누르는 흐름입니다.
from selenium.webdriver.common.by import By
import time
driver.get("https://www.tistory.com/auth/login")
time.sleep(2)
# 카카오 계정으로 로그인 버튼 클릭
driver.find_element(By.CLASS_NAME, "kakao_link").click()
time.sleep(2)
# 카카오 아이디/비번 입력
driver.find_element(By.ID, "loginId--1").send_keys("내 아이디")
driver.find_element(By.ID, "password--2").send_keys("내 비밀번호")
driver.find_element(By.CLASS_NAME, "btn_g.highlight.submit").click()
time.sleep(3)
여기서 꿀팁! 요소를 찾을 때 헷갈리면 크롬에서 F12(개발자 도구) → 요소 선택 → 마우스로 클릭하면 해당 요소의 ID나 클래스명이 바로 보여요. 이걸 코드에 복붙하면 됩니다. 처음엔 좀 낯설어도 2~3번 해보면 금방 익숙해져요.
단, 보안 강화로 자동화를 막는 사이트도 있으니, 로그인이 자꾸 튕긴다면 쿠키 저장 방식으로 우회하는 방법도 있어요. (이건 다음 글에서 다룰게요)
③ 글 자동 작성 & 발행 — 진짜 핵심 파트입니다
로그인까지 됐으면 이제 본론이에요. 글 제목 입력하고, 본문 내용 넣고, 태그 달고, 발행 버튼 누르는 것까지 자동화하는 파트입니다. 이게 되는 순간 "아, 진짜 되는구나"하는 느낌 옵니다.
글 작성 페이지로 이동한 후, 각 입력 필드를 찾아서 내용을 넣는 방식이에요.
# 글쓰기 페이지 이동
driver.get("https://내블로그주소.tistory.com/manage/post/")
time.sleep(2)
# 제목 입력
title_input = driver.find_element(By.CSS_SELECTOR, "input[placeholder='제목을 입력하세요']")
title_input.click()
title_input.send_keys("오늘의 자동 포스팅 제목")
# 본문 입력 (iframe 전환 필요한 경우)
driver.switch_to.frame("editor-content-iframe") # iframe 이름은 사이트마다 다름
body = driver.find_element(By.TAG_NAME, "body")
body.send_keys("여기에 본문 내용이 들어갑니다.")
driver.switch_to.default_content()
# 발행 버튼 클릭
driver.find_element(By.CSS_SELECTOR, "button.btn-publish").click()
time.sleep(2)
주의할 점이 있어요. 티스토리나 네이버 블로그 에디터는 iframe 안에 본문 입력창이 있는 경우가 많아요. 그래서 switch_to.frame()으로 iframe 안으로 들어간 다음에 텍스트를 입력해야 합니다. 이 부분에서 많이 막히는데, iframe 이름은 개발자 도구로 확인하면 됩니다.
또 하나, time.sleep()은 귀찮아 보여도 꼭 넣어야 해요. 페이지 로딩 전에 다음 코드가 실행되면 에러가 나거든요. 나중에 익숙해지면 WebDriverWait으로 더 스마트하게 대기 처리할 수 있어요.
④ 반복 포스팅 자동화 — CSV 파일 하나로 여러 글을 한 번에 올리세요
여기까지 왔으면 이제 진짜 자동화의 맛을 볼 차례예요. 글 한 개 올리는 게 아니라, 미리 써둔 글 목록을 CSV 파일로 만들어 놓고 한 번에 여러 개를 연속으로 올리는 구조입니다.
방법은 간단해요. 엑셀이나 구글 시트에 이렇게 정리해두세요.
- A열: 제목
- B열: 본문 내용
- C열: 태그
- D열: 발행 여부 (Y/N)
그리고 파이썬에서 pandas로 CSV를 읽어서 반복문으로 포스팅하면 됩니다.
import pandas as pd
df = pd.read_csv("posts.csv")
for index, row in df.iterrows():
if row['발행여부'] == 'Y':
# 위에서 만든 포스팅 함수 호출
post_blog(driver, row['제목'], row['본문'], row['태그'])
time.sleep(5) # 연속 포스팅 사이 텀 주기
print(f"{row['제목']} 발행 완료!")
이렇게 하면 글 10개를 미리 써두고 버튼 하나로 전부 예약 발행하는 것과 같은 효과가 납니다. 저는 주말에 한 번에 글 5~7개 써두고, 월~금 오전에 자동으로 올라가게 세팅해서 쓰고 있어요. 스케줄러까지 붙이고 싶으면 윈도우는 작업 스케줄러, 맥/리눅스는 crontab을 쓰면 됩니다.
물론 완벽하진 않아요. 사이트 UI가 바뀌면 셀렉터를 다시 잡아야 하고, 캡챠가 걸리면 수동으로 풀어야 할 때도 있어요. 그런데 그게 있어도 반복 작업 80%는 줄어드는 건 확실합니다.
지금 당장 이것 하나만 해보세요
오늘 읽은 내용이 많아 보여도 사실 핵심은 단순해요. 지금 당장은 딱 하나만 해보세요.
→ 파이썬과 Selenium 설치하고, 크롬이 자동으로 열리는 코드 한 번 실행해보기
이거 하나만 성공해도 나머지는 연결돼요. "아, 이게 되는구나"를 직접 눈으로 보는 게 제일 중요합니다. 설치하다가 막히는 부분 있으면 댓글로 남겨주세요. 제가 겪은 에러들 거의 다 알고 있어서 같이 해결해드릴 수 있어요.
자동화는 거창한 게 아니에요. 반복되는 내 시간을 되찾는 것이거든요. 오늘 딱 30분만 투자해보세요.
댓글
댓글 쓰기