Teams 위키를 이미지를 포함하여 로컬로 다운로드

10918 단어

소개



잠정 임차인에서 영구 임차인으로 팀 마이그레이션하는 데 위키를 아무래도 마이그레이션하고 싶습니다.
그러나 마이그레이션 도구에서는 Wiki는 마이그레이션되지 않습니다.
Teams의 위키 내보내기로 4고8 괴로워하는 사람이 많지만 별로 정보가 없다.
Sharepoint에서 사이트 콘텐츠를 보면 "wiki의 데이터가 mht 파일이나 png 파일 등으로 저장되어 있기 때문에 좋은 느낌에 어떻게든 할 수 있을까"라고 생각해 보았다.
결과적으로, mht 파일을 반죽하고 html 파일로 저장해 두거나 로컬 Office 파일(OneNote의 북)에 복사할 수 있을 것 같다고 밝혀졌다.
다만, 새로운 Teams에 복사하면, 화상 부분이 카피되지 않기 때문에, 흠……. 결국 1장 1장 이미지를 복사해 붙여넣기를 반복할 필요가 있을 것 같다.
비망록으로 기록해 둔다.

했던 일


  • Sharepoint에서 위키의 mht 파일과 png 파일 등을 정리해 다운로드
  • Chrome에서 열 수 있도록 mht 파일을 htm 파일로 확장자를 변경합니다.
  • Python + Selenium (Chrome)을 사용하여 mht 파일의 이미지 표시 부분의 소스를 다시 씁니다
  • 다시 작성된 htm 파일을 Chrome에서 열고 내보내려는 로컬 사무실 파일에 복사합니다.
  • (TeamsWiki에 복사하고 싶다면 이미지를 하나씩 복사하여 조금씩 이전하십시오 ...)

  • 데이터 얻기



    팀을 SharePoint에서 열고 사이트 콘텐츠 안에 "Teams Wiki Data"가 있으므로 클릭하여 열 수 있습니다.


    General의 점들을 열고 다운로드를 클릭하면 Zip 파일로 다운로드할 수 있다


    이 중에는 복사 된 이미지 파일이 png로 저장되거나 mht 파일이 저장됩니다.


    하지만 mht 파일을 열어도 링크되지 않습니다 수수께끼.
    mht 파일을 단순히 html 파일로 확장자를 바꾸어 열어도 링크가 끊어져 볼 수 없다.
    가끔 볼 수 있는 경우가 있지만, 볼 수 없는 때도 있다. 그래.

    그래서 selenium 사용해 <img> 태그의 속성으로부터 이미지 파일의 패스를 당겨 와, PNG 이미지 파일을 상대 패스로 표시시켜 보면 어떨까 생각하고, python으로 어떻게든 해 본다.

    python + selenium을 사용하여 mht 파일을 반올림



    소스는 다음과 같습니다
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    import os
    import glob
    
    #Generalフォルダ内にあるmhtファイルをhtmファイルにリネームする
    [os.rename("General/"+fn,"General/"+fn[:-4]+".htm") for fn in glob.glob("General/*.mht")]
    
    #変換対象のhtmlファイルの絶対パスのリストを作っておく
    files=[os.path.abspath(x).replace("\\","/") for x in glob.glob("General/*.htm")]
    
    #ChromeDriverを立ち上げておく。chromedriverは同一フォルダ内に置いて相対パスで指定。
    driver = webdriver.Chrome(executable_path='chromedriver_win32/chromedriver.exe')
    
    #全てのファイルに対して以下を実行する
    for file in files:
        print(file)
    
        #fileを開く
        driver.get("file:///"+file)
    
        #imgエレメントを探す
        elements = driver.find_elements_by_tag_name("img")
    
        #data-preview-srcの属性を持ってきて、"/"区切りの末尾データ(=PNG画像ファイルの名前部分)だけを取得し、
        #置換用の文字列を作っておく
        s=[element.get_attribute("data-preview-src") for element in elements]
        s=[e.split("/")[-1] if e is not None else "" for e in s ] #(((おまじない
        s=['<div><img src="'+x+'"></div>' for x in s]
    
        #元々のimgタグで表示されている画像の高さを0にするための工夫も施しておく
        h=[element.get_attribute("height") for element in elements]
        h=['height="'+x+'"' for x in h]
    
        #ファイルを1行ずつ読み込んでreplaceで文字列を置換する(笑
        lines=[]
        n=0
        x='<div><span contenteditable="false"><img alt data-preview-src='
        with open(file, mode='rt', encoding='utf-8') as f:
            for line in f:
                if x in line:
                    line=line.replace(x,s[n]+x).replace(h[n],'height="0"')
                    n=n+1
                lines.append(line)
    
        #書き換えた文字列を使って新しいファイルを作る
        with open(file[:-4]+"_copy.htm",mode="w",encoding="utf8") as f:
            f.writelines(lines)
    

    완성 된 html 파일을 사용하여 더 번갈아 가십시오.


  • 흥미 진진한 느낌으로 새로 만든 HTML 파일을 Chrome에서 엽니 다
  • 복사할 부분을 드래그 앤 드롭으로 선택하고 Ctrl+C
  • 브라우저용 Teams에서 OneNote의 책을 만들어 붙여넣기
  • 이미지의 부분은 두부가 되는 것으로 절구한다(흰눈
  • 잘 울면서 html 파일의 이미지를 마우스 오른쪽 버튼으로 클릭하고 "이미지 복사"를 한 번에 정중하게 복사하고 두부를 지 웁니다
  • 칸세이!

  • 결론



    집에 가고 싶다 (흰 눈)
    지금 종교상의 이유로 브라우저에서 밖에 사용할 수 없습니다만, 데스크탑 앱판 사용할 수 있으면 고민하지 않아도 되겠지요.

    좋은 웹페이지 즐겨찾기