Skip to content

Instantly share code, notes, and snippets.

@preco21
Last active November 20, 2022 16:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save preco21/fd260f1611b489c1b4fbeead25c60bf0 to your computer and use it in GitHub Desktop.
Save preco21/fd260f1611b489c1b4fbeead25c60bf0 to your computer and use it in GitHub Desktop.
네이버(Naver) 블로그 흑역사 저장 반자동화 스크립트

네이버(Naver) 블로그 글 흑역사 저장 반자동화 스크립트

네이버 블로그, 글 관리 -> 글 저장 메뉴에서 글 PDF 내보내기를 수행할 때 사용할 수 있는 브라우저 콘솔용 자동화 스크립트입니다.

현재 Chrome에서만 테스트되었고, Firefox, Edge 등 Console Utilities API를 지원하는 최신 브라우저에서 사용할 수 있습니다.

300+개의 흑역사를 빠르게 저장하고 블로그를 폭파할 목적으로 만들었는데 이 문서를 발견할 사람이 있을지는 모르겠지만 혼자만 쓰기 아까워서 공유합니다. 🙌

글 관리 메뉴에 접근하기

방법1. 수동으로 접근하기

  • 네이버 블로그 홈에 진입합니다.
  • 우측 사이드 메뉴의 "내 블로그" 버튼을 선택합니다.
  • 프로필의 "관리" 메뉴에 들어갑니다.
  • 상단 네비게이션에서 "메뉴·글·동영상 관리"를 선택합니다.
  • 좌측 사이드 메뉴의 "글 관리" -> "글 저장" 메뉴를 선택합니다.

방법2. 본인의 블로그ID를 알고 있다면

https://admin.blog.naver.com/[YOUR_BLOG_ID_HERE]/config/postexport

준비하기 (첫 페이지 선택하기)

  1. "파일 제목"을 입력합니다.
  2. 브라우저 콘솔을 엽니다(macOS: Cmd+Ctrl+I, Windows/Linux: Ctrl+Shift+I)
  3. Console(콘솔) 탭에서 아래 준비하기 스크립트를 실행합니다.
$$('[class="input_check _nclkcb(edt_backup.checkall)"]', $$('#papermain')[0].contentDocument)[0].click();
$$('[class="_nclk(edt_backup.add)"] > img', $$('#papermain')[0].contentDocument)[0].click();

위 스크립트를 실행시켰을 때, 현재 보여지고 있는 리스트의 글이 모두 추가되었다면 준비 끝입니다.

3. 노동하기

이 스크립트가 반자동인 데에는 이유가 있습니다.

기술적으로는 다음 과정을 자동화 하는데요, 처음부터 끝까지 모두 긁기보단 원하는 위치의 페이지에서 특정 위치까지 쭉 훑는 경우도 있을 것 같아 의도적으로 이렇게 디자인되었습니다.

  1. 현재 선택된 페이지 숫자의 다음 숫자를 클릭
  2. 좌측 상단 리스트 전체 선택 체크박스 선택
  3. 추가하기 버튼 클릭

만약 리스트의 A-Z까지 모두 긁기를 원한다면 아래 스크립트를 복사해서 브라우저 콘솔에 "붙여넣기 실행 + Enter" 를 N번 반복하면 됩니다. (Tip: 최초 1번 붙여넣은 이후 키보드 화살표 ⬆️ 키를 누르면 쉽게 다시 붙여넣을 수 있습니다)

이제 아래 스크립트를 계속 실행하면서 리스트에 원하는 만큼(네이버 블로그 제한으로 인해 한 번에 100개의 글만 내보내기 가능) 선택한 후 "만들기" 를 클릭하면 됩니다.

$$('#paginate > strong + a', $$('#papermain')[0].contentDocument)[0].click();
await new Promise((r) => setTimeout(r, 500));
$$('[class="input_check _nclkcb(edt_backup.checkall)"]', $$('#papermain')[0].contentDocument)[0].click();
$$('[class="_nclk(edt_backup.add)"] > img', $$('#papermain')[0].contentDocument)[0].click();

혹시 "글을 선택해 주세요." 라는 오류가 나온다면, setTimeout(r, 500) 부분의 500 상수를 좀 더 늘려서 테스트 해보세요. 500 -> 2000

그럼 저는 20000.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment