최근 몇일동안 사이트 사용에 문제가 있었습니다. 예를들어 댓글이 작성이 안되는 문제였습니다. 그 이유는 웹호스팅 디스크 Full 때문이었습니다.
그동안 중복해서 올린 media 라이브러리가 많았는데, 사용하지 않는 미디어파일을 삭제 하는 노트북 파일 입니다.
파일명으로만 검색하기 때문에, 동일한 파일명으로 사용중일때는 있는 것으로 판단합니다. 즉 좀 더 보수적으로 판단 됩니다. 정확하게는 경로명까지 봐서 판단해야 하는데, 이거는 다음에 올린 다음 버젼에서 적용 되었습니다.
ID/PW 부분만 변경해서 사용하면 동작 할것 입니다.

# -*- encoding:utf8 -*- from curses.ascii import isdigit from select import select from turtle import Screen, isvisible import requests import random from configparser import ConfigParser from selenium import webdriver from bs4 import BeautifulSoup import sys import time from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import math from selenium.webdriver.support.ui import Select import logging import os from Screenshot import Screenshot_Clipping from PIL import Image from inspect import currentframe, getframeinfo from urllib.request import Request, urlopen from datetime import datetime,date,timedelta from requests.auth import HTTPBasicAuth import json import base64, json, re, requests
In [244]:
username = 'ID' password = 'Password' baseurl = "https://flywithu.com/wp-json/wp/v2"
In [245]:
credentials = username + ':' + password
token = base64.b64encode(credentials.encode())
header = {
'Authorization': 'Basic ' + token.decode('utf-8'),
'Content-Type': 'application/json'}
In [246]:
page = 1
per_page=30
mymedias=[]
while True:
data = {
'per_page': per_page,
'page': page
}
response = requests.get(baseurl+"/media", headers=header,data=json.dumps(data))
result = response.json()
item_count = len(result)
page=page+1
if(item_count<per_page):
break
# print(result)
mymedias.extend(result)
print("*",end="")
**********************
In [247]:
page = 1
per_page=30
myposts=[]
while True:
data = {
'per_page': per_page,
'page': page
}
response = requests.get(baseurl+"/posts", headers=header,data=json.dumps(data))
result = response.json()
item_count = len(result)
page=page+1
# print(result)
myposts.extend(result)
print("*",end="")
if(item_count<per_page):
break
page=1
while True:
data = {
'per_page': per_page,
'page': page
}
response = requests.get(baseurl+"/pages", headers=header,data=json.dumps(data))
result = response.json()
item_count = len(result)
page=page+1
# print(result)
myposts.extend(result)
print("*",end="")
if(item_count<per_page):
break
****************************************************************
In [248]:
mycontent=""
for post in myposts:
content = post['content']['rendered']
mycontent=mycontent+content
In [249]:
def save_text_to_file(text, file_path):
with open(file_path, 'w') as file:
file.write(text)
save_text_to_file(mycontent,"result.txt")
In [250]:
def download_file(url, save_path):
response = requests.get(url)
if response.status_code == 200:
with open(save_path, 'wb') as file:
file.write(response.content)
print(f"파일 다운로드 완료: {save_path}")
else:
print("파일 다운로드 실패")
In [251]:
if 'Myimage-29.png' in mycontent:
print("OK")
In [252]:
mymedia_hash=[]
count = 0
for mymedia in mymedias:
myone = os.path.basename(mymedia['guid']['rendered'])
if myone not in mycontent:
print(myone)
print(mymedia['guid']['rendered'])
print(mymedia['id'])
download_file(mymedia['guid']['rendered'],"data/"+myone)
deleteurl = baseurl+f"/media/{mymedia['id']}"
print(deleteurl)
count=count+1
data = {
'id': mymedia['id'],
'force': 1,
}
print(data)
res = requests.delete(deleteurl,headers=header,data=json.dumps(data))
print(res.status_code)
print(count)
tmpr5ze2f_a.png https://flywithu.com/wp-content/uploads/2023/05/tmpr5ze2f_a.png 6831 파일 다운로드 완료: data/tmpr5ze2f_a.png