본문 바로가기

Dead Code/Python

티스토리 블로그 포스팅 제목 목록 txt파일 만들기

블로그를 한지.. 꽤 오랜 시일이 지난 것 같다. 몇개의 글이 있는지, 몇개의 글이 유효한 것인지 기억하기도 어려워 졌다. 그래서, 엑셀과 관련하여 끄적거렸던 글의 목차를 만들까 한다. 오랜만에 파이썬을 켰더니, 버전차이가 심하다. 문법도 가물가물하다. 그래도 시작한 일이니 한번 끝까지 해본다.

 

 

완성된 리스트로 발행한 목차 관련된 글은 아래와 같다. CSS에 하이퍼링크 MOUSE HOVER 처리를 해두지 않아, 좀 답답할 수는 있지만.. 뭐 의미 없다.

 

 

엑셀 / 엑셀VBA 관련 포스팅 리스트(2022.11.02)

음.. 열심히 살았다. 제목 클릭 시, 해당 포스팅으로 이동 엑셀 [엑셀] 짜증나는 엑셀 첫 화면 서식보기 시작화면 보기 기능 없애기 [엑셀] 나만의 엑셀 버튼 만들기(귀찮은 표 만들기) [엑셀] 셀

sunnybong.tistory.com

 

파이썬으로 모든 작업을 처리할 수도 있지만, 편의상, 제목을 텍스트 파일로 추출하는 작업까지만 진행하고, 나머지 html 태그화 시키는 작업은 구글시트에서 함수로 처리를 했다.

 

파이썬 코드는 아래와 같다. 음... 하다보니, 글번호가 527번까지 갔다는걸 확인할 수 있었다. 가장 최근 글의 티스토리블로그주소/000 이 마지막 글번호이고, 아래 코드의 range(0, XXX)의 XXX에 적용해주면 된다.

언제나 그렇듯, 파이썬 코드는 구글링 두세번으로 찾을 수가 있어서 참 좋다.

 

 

# parser.py
import requests
from bs4 import BeautifulSoup

range = range(0, 527)
mytitles = []

f = open("D:\\Python\\hello\\myblog.txt", 'w')

for i in range:
    # HTTP GET Request
    req = requests.get('https://sunnybong.tistory.com/' + str(i))
    # HTML 소스 가져오기
    html = req.text
    soup = BeautifulSoup(html, 'html.parser')
    titleAsTag = soup.find('title')
    titleAsStr = (str(titleAsTag).replace(
        '<title>', '')).replace('</title>', '')

    index = str(i)

    if len(index) == 2:
        index = '0' + index
    elif len(index) == 1:
        index = '00' + index
    else:
        index = index

    f.write(index + ' ' + titleAsStr + '\n')
    print(index + ' Passed')

f.close()
print('Completed')

 

 

아래와 같이 설정된 폴더에 myblog.txt 파일이 생성되었다.

 

 

 

엑셀이나 엑셀VBA 관련 글에는 제목에 항상 [엑셀] 또는 [엑셀VBA]로 머릿말을 열심히 달아준 덕분에, 해당되는 글과, 글의 인덱스값을 가지고 HTML 코드를 반환하는 구글시트 수식을 끄적여 줄 수 있었다.

 

TXT파일을 구글시트에서 붙여넣기 하고, INDEX와 URL, TITLE을 발라내서 P태그가 생성되도록 했다. (P태그를 생성할 때  따옴표 처리에 주의해줘야 한다.) 그리고, TITLE에서 VBA글인지, 엑셀글인지 확인을 해서, 1/FALSE로 구분해서, 필터를 활용해 해당 태그만 골라 낼 수 있도록 했다.

 

 

 

* 참고로, 소스부분에 TITLE이 TISTORY라고 기재된 건, 해당 INDEX의 글이 지워져서 존재하지 않음을 의미

* 주의할 점은 스킨에 따라서, 제목을 구분하는 태그가 다를 수도 있다는 점이다. 그땐.. 음.. 좀 더 구글링

 

 

이상 끝.