최근 티스토리를 떠나는 사람이 많은데 저도 티스토리에 올리던 게시글을 여기 깃 블로그로 쭉 백업하고 있습니다.
손으로요…
명색이 그래도 SW엔지니어인데 뭐하는가 싶어서 일괄적으로 크롤링이라도 해야하나 보니 다행이 일괄적으로 백업은 할 수 있는데
html파일이네요 그래도 금방 찾아보니 html파일을 md 마크다운 파일로 변경해주는 라이브러리가 있어서 여기에다가 몇 가지 코드만 수정을 해서 일괄적으로 마크다운 파일을 얻을 수 있게 코드를 짰습니다.
파일 변환만 필요하신 분들은 바로 2번으로 넘어가셔도 됩니다.
1. 티스토리 백업하기
블로그 설정 관리
데이터 관리하기
티스토리 블로그 백업이 있습니다. 누르면 바로 되는 것은 아니고 파일이 생성되야 하는데 그렇게 오래 걸리지는 않습니다.
다 끝나면 블로그 알림으로 알려줍니다.
압축파일 형태이고 이렇게 게시글 번호나 게시글 이름으로 각 폴더가 생성되고 안에 html파일과 이미지 파일이 들어 있습니다.
2. html파일을 마크다운으로 변환하기
파이썬은 3.9버전 이하로 준비해주시면 됩니다.
기본 라이브러리에다가 두 가지 라이브러리가 더 필요한데
https://pypi.org/project/aspose-words/
aspose-words는 파일을 변환해주는 라이브러리고 (그냥 검색하니 제일 위에 올라온 라이브러리고 잘 작동하길래 가져왔습니다)
tqdm는 진행도를 알려주는 라이브러리입니다.
생각보다 하나 파일 컨버팅하는데 1~2초 정도로 수백개의 게시글이 있을 경우 그렇게 금방 끝나지는 않아서 진행상황을 보기 쉽게 할려고 넣었습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# !pip install aspose-words
# !pip install tqdm
import os
import aspose.words as aw
from tqdm import tqdm
#지정한 경로안에 있는 모든 html파일 읽어오기
dir_path = "./"
html_file_list = []
for (root, directories, files) in os.walk(dir_path):
for d in directories:
d_path = os.path.join(root, d)
for file in files:
file_path = os.path.join(root, file)
html_path = file_path.split('.')[-1]
if html_path == 'html':
html_file_list.append(file_path)
print(file_path)
print("done!")
#html파일을 마크다운으로 변경하기
for index, path in enumerate(tqdm(html_file_list)):
new_string = (html_file_list[index].split('\\')[1][2:-5]+'.md')
working_dir = (html_file_list[index].split('\\')[0]+'/')
markdown = aw.Document(path)
markdown.save(working_dir+new_string)
소스코드는 위와 같습니다.
주피터 노트북이나 파이썬 파일로 만들어서 위 코드를 작성한 파이썬 파일을 같은 폴더에 넣어주시거나 절대경로로 백업파일이 있는 곳을 지정해주면 알아서 모든 html파일을 같은 폴더안에 마크다운 파일을 새로 생성을 해주게 됩니다.
끝났습니다.
다만 블로그 테마나 layout, 설정하는게 조금씩 달라서 자동으로 title나 date등의 metadata를 추가하지는 않았습니다. 어차피 이미지 경로 같은거는 전부다 수동으로 다 새로 셋팅해야해서….. 그래도 일이 조금 줄어든 것으로 만족합니다.
그래도 간단하게 코드를 만든김에 깃에도 정리해서 올려두겠습니다.
- md파일에다가 자동으로 본인들의 라이브러리를 사용했다는 글을 추가를 하네요 나중에 이것도 다시 생각나면 지우는거까지 하겠습니다.
Comments powered by Disqus.