Qiita 기사와 스톡 백업

3894 단어 QiitaPowerShell

소개



최근 PowerShell을 사용하고 있기 때문에 힘 시험에 Qiita의 기사와 스톡을 백업하는 스크립트를 만들었습니다.
LGTM 일람은 불행히도 Qiita API에 없기 때문에 웹 페이지를 스크래핑 하지 않으면 취득할 수 없을 것 같습니다.

운영 환경


  • Windows PowerShell 5
  • PowerShell Core 6
  • PowerShell 7

  • 사용법



    기사 백업



    qiita-item-exporter.ps1
  • 파일의 맨 위에 $userId를 내 계정 이름으로 변경합니다.
  • 기사중의 이미지 파일의 URL은 디폴트로 파일명만으로 치환합니다만 다른 URL로 치환하고 싶은 경우에 설정합니다.
    예를 들어 $imageFolder = "https://example.com/images/" 로 하면 기사중의 이미지의 URL이 이하와 같이 치환됩니다.
  • 변경 전 https://qiita-image-store.s3.amazonaws.com/0/00000/ffffffff-ffff-ffff-ffff-ffffffffffff.png
  • 변경 후 https://example.com/images/ffffffff-ffff-ffff-ffff-ffffffffffff.png


  • qiita-item-exporter.ps1
    $userId = 'your-user-name'
    $imageFolder = "" # replace image path
    
    qiita-item-exporter.ps1 를 실행하면 다음과 같은 구조로 기사와 이미지가 저장됩니다.
    - items
      +- readme.md                                   # 各記事へのリンク
      +- xxxxxxxxxxxxxxxxxxxx                        # 記事のID
         +- xxxxxxxxxxxxxxxxxxxx.md                  # ダウンロードした記事
         +- readme.md                                # 画像のURLを置換した記事
         +- ffffffff-ffff-ffff-ffff-ffffffffffff.png # 記事中の画像
         +- meta.json                                # 作成日時、更新日時、タイトル、タグを保存したJSON
    

    재고 백업



    qiita-stock-exporter.ps1
  • $userId$imageFolderqiita-item-exporter.ps1 와 같은 설정입니다.
  • 스톡의 총수는 Qiita API로 취득할 수 없기 때문에 재고 목록 의 하단으로부터 페이지수를 확인해 $pages 를 설정합니다.
    이 스쿠쇼에서는 29 가 페이지수입니다.


  • qiita-stock-exporter.ps1
    $userId = 'your-user-name'
    $pages = 1 # your-stock-pages
    $imageFolder = "" # replace image path
    
    qiita-stock-exporter.ps1 를 실행하면 다음과 같은 구조로 기사와 이미지가 저장됩니다.
    - stokcs
      +- readme.md                                   # 各記事へのリンク
      +- xxxxxxxxxxxxxxxxxxxx                        # 記事のID
         +- xxxxxxxxxxxxxxxxxxxx.md                  # ダウンロードした記事
         +- readme.md                                # 画像のURLを置換した記事
         +- ffffffff-ffff-ffff-ffff-ffffffffffff.png # 記事中の画像
         +- meta.json                                # ユーザーID、ユーザー情報、タイトル、タグを保存したJSON
    

    사이고에게



    PowerShell은 문법이야말로 독특한 것이지만 C#의 LINQ처럼 파이프로 문자열뿐만 아니라 객체를 흘릴 수 있기 때문에 데이터의 가공이 쉬웠습니다.

    좋은 웹페이지 즐겨찾기