wget
다음 명령을 사용할 때 ,
$ wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains grantmlong.com \
--no-parent \
grantmlong.com/teaching/index.html
교수님의 콘텐츠를 모두 다운로드하려고 했는데요코스 페이지. 어떤 이유에서인지 나머지 사이트의 이미지 콘텐츠는 대부분 올바르게 다운로드되고 있지만,Reveal.js강의 슬라이드가 다운로드되지 않습니다.
예를 들어 내 로컬 컴퓨터에서 로 이동하여 grantmlong.com/teaching/lectures/
열면 lecture1.html
세 번째 슬라이드가 표시됩니다.
웹사이트에서 에 있는 이미지를 찾았습니다 https://grantmlong.com/teaching/lectures/img/hbr.png
. img
다운로드한 로컬 폴더 로 이동 wget
하면
cd grantmlong.com/teaching/lectures/img
ls -1
l10_f0.png
l10_f1.png
l10_f2.png
l10_f3.png
l10_f4.png
l10_f5b.png
l10_f5.png
l10_f6.png
l10_f7.png
l10_p1.png
l10_p2.png
l11_p1.png
l11_p2.png
l11_p3.png
l11_p4.png
l11_p5.png
l11_p6.png
l12_p1.png
l12_p2.png
l5_e1.png
l5_e2.png
l5_e3.png
l5_e4.png
l5_glm.png
l5_logreg.png
l5_p10.png
l5_p11.png
l5_p1a.png
l5_p1b.png
l5_p2.png
l5_p3.png
l5_p4.png
l5_p5.png
l5_p6.png
l5_p7.png
l5_p8.png
l5_p9.png
l5_reg_output_1.png
l5_reg_output_2.png
l5_reg_output_3.png
l5_reg_output_4.png
l5_reg_output.png
l6_accuracy.png
l6_confusion.png
l6_p1.png
l6_precision.png
l6_recall.png
l9_p1.png
l9_p2.png
l9_p3.png
l9_p4.png
l9_t1.png
l9_t2.png
l9_t3.png
l9_t4.png
l9_t5.png
hbr.png
찾을 수 있는 곳이 없으며 이는 Reveal.js 슬라이드쇼의 이미지가 "페이지 필수 사항"으로 간주되지 않으며 포함되지 않음을 나타냅니다 wget
.
이러한 이미지가 다운로드되었는지 어떻게 확인하나요? 또한 discover.js 슬라이드쇼의 일부 이미지는 제3자 웹사이트에서 가져온 것입니다.순간. --domains grantmlong.com
Reveal.js 슬라이드쇼가 아닌 모든 페이지에 대해 이 옵션을 true로 유지하면서 이 외부 콘텐츠가 다운로드되도록 하려면 어떻게 해야 합니까 ?
답변1
아니요, 그럴 수 없습니다.
파일 hbr.png는 사용자 정의 속성에 의해 참조됩니다.데이터 소스img 태그에
설명대로여기, wget은 사용자 정의 속성을 존중할 방법이 없습니다.
답변2
좀 더 검색한 끝에 Reveal.js 슬라이드쇼 아카이브 다운로드 문제에 대한 (해킹된) 해결책을 찾았습니다. codimd github에 사용자 "zeigerpuppy"가 게시되었습니다.다음 응답:
codimd를 사용하여 만든 슬라이드쇼 프레젠테이션의 아카이브를 저장하는 방법을 찾았습니다. wget을 사용하여 프레젠테이션에서 이미지를 가져오는 데 문제가 있습니다(이미지에 대한 링크가 마크다운이기 때문인 것 같습니다).
따라서 3단계 프로세스이지만 빠르고 잘 작동합니다. 슬라이드쇼를 보여주고 싶다고 가정해 보겠습니다.https://codimd.server.net/p/S1PIjfhM8#/
wget
파일 및 필수 파일(.css 및 .js)을 가져오는 데 사용됩니다 .
- 귀하의 프레젠테이션은 다음과 같이 끝날 것입니다.
p/S1PIjfhM8.html
`
wget --recursive --no-clobber --page-requisites \ --html-extension --convert-links \ --domains codimd.server.net \ https://codimd.server.net/p/S1PIjfhM8#/
Firefox 플러그인을 사용하세요:이미지 선택
- 저장 모드 사용:
Image_Picka/uploads/${name}${ext}
- 페이지의 모든 이미지(.svg 포함)를 가져옵니다.
- 이미지를
uploads
이름이 지정된 폴더 로 이동하세요.
sed
다음을 사용하여 html 파일의 링크를 상대 링크로 변경 해야 합니다.`
cd p sed -i .bak 's|/uploads/upload_|../uploads/upload_|g' S1PIjfhM8.html
그러면 오프라인으로 실행할 수 있는 슬라이드쇼의 전체 복사본을 받게 됩니다. 보관 목적에도 적합합니다.
codimd 프로그램의 저장 옵션 아래에 이와 같은 기능이 내장되어 있다면 좋을 것입니다
save slides
.
비슷한 접근 방식을 취했지만 마지막 단계 실행을 사용하지는 않았습니다 sed
. 대신 Image Picka를 사용하여 누락된 모든 이미지를 다운로드 하고 로컬 아카이브 의 디렉터리 wget
에 넣습니다 . 이렇게 하면 대부분의 이미지 내용이 슬라이드쇼에 표시됩니다.grantmlong.com/teaching/lectures/img/
wget
타사 사이트의 gif는 로드할 수 없지만 대부분 미적으로 보기 좋습니다(.gif 형식의 중요한 방정식이나 그래프는 없음). 따라서 가장 중요한 내용을 오프라인에서 볼 수 있어서 기쁩니다.