카테고리 없음

[Velog] 여러 게시물을 자동으로 삭제시키기

s_omi 2024. 10. 16. 15:28
728x90
반응형
SMALL

예전에 사용했던 velog 게시물을 좀 정리하려고 보니 velog는 여러 게시물을 선택해 삭제하는 방법이 없어서.. 코딩해서 삭제시켰다..! 

velog 궁금하다면 클릭

 

게시물을 삭제하려면 로그인을 해야하는데 velog는 로그인할 때 아이디, 비밀번호를 입력하는 것이 아닌

  1. 이메일을 입력해서 입력한 이메일으로 온 링크를 통해 로그인
  2. Github, Google 등 연동으로 클릭해서 로그인

이렇게 두 가지 방식이다. 

 

나는 이메일 로그인 방식이라 코드도 이메일 로그인 방식으로 작성했다는 것을 참고하길 바란다.

 

 

이메일로 온 보라색 링크를 login_link 변수에 넣으면 된다. 
(근데 잘못 눌러버리면 링크가 유효하지 않게 되어서 다시 발급 받아야 됨.. 내 얘기)

 

그리고 Chrome 브라우저를 제어하기 위해 Selenium과 ChromeDriver을 다운 받아야 한다.

ChromeDriver은 본인의 현재 크롬 버전과 맞추어서 다운 받아야 한다!

 

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# ChromeDriver 경로 설정
DRIVER_PATH = 'ChromeDriver 경로'
service = Service(DRIVER_PATH)
driver = webdriver.Chrome(service=service)

# Velog 로그인 링크 열기
def login_to_velog(login_link):
    driver.get(login_link)
    time.sleep(3)  # 페이지가 로드될 시간을 잠시 대기

# 게시물 삭제 함수
def delete_post(post_url):
    driver.get(post_url)
    try:
        # ‘삭제’ 버튼이 클릭 가능해질 때까지 대기
        delete_button = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH, '//*[text()="삭제"]'))
        )
        delete_button.click()

        # 삭제 확인 버튼 클릭
        confirm_delete_button = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH, '//*[text()="확인"]'))
        )
        confirm_delete_button.click()
    except Exception as e:
        print(f"An error occurred while deleting post at {post_url}: {e}")

# Velog 로그인 링크
login_link = 'https://velog.io/...'

# 삭제할 게시물 URL 목록
post_urls = [
    '삭제할 게시물 URL1',
    '삭제할 게시물 URL2',
]

# 실행
login_to_velog(login_link)
for post_url in post_urls:
    delete_post(post_url)
    print(f'{post_url} 삭제 완료')

# 브라우저 종료
driver.quit()
728x90
반응형
LIST