wget이 웹 페이지에서 아이콘을 다운로드할 수 없는 것 같습니다.

wget이 웹 페이지에서 아이콘을 다운로드할 수 없는 것 같습니다.

오프라인으로 볼 수 있도록 웹페이지를 다운로드하고 싶습니다. 특히 다음 페이지를 다운로드하고 싶습니다.SEP의 라이프니츠 항목, 그래서 터미널에서 다음 명령을 실행합니다

wget -p -np https://plato.stanford.edu/entries/leibniz/

웹 페이지를 표시하는 데 필요한 이미지 등을 다운로드해야 하지만 상위 디렉토리로 승격되지는 않습니다.

그런데 다운로드한 웹페이지를 열면 웹페이지의 일부 아이콘이 없어집니다. 특히 아래 이미지는 다운로드한 웹 페이지에서 누락된 아이콘 중 일부를 보여줍니다. (다른 브라우저에서도 동일한 결과가 나타납니다)

원본 웹페이지의 왼쪽 상단은 다음과 같습니다.

원본 웹페이지

다운로드한 웹페이지의 왼쪽 상단은 다음과 같습니다.

다운로드한 웹페이지

누락된 아이콘은 모두 다음과 같은 프로그램에서 나온 것임을 발견했습니다.“폰트가 정말 멋지네요”. 웹페이지를 다운로드할 때 wget이름에 "fontawesome"이라는 문자열이 포함된 파일이 포함된 "font"라는 하위 디렉토리가 제공되므로 wget웹페이지가 어떤 방식으로든 이 글꼴을 사용한다는 것을 인식합니다.

다운로드한 웹 페이지에 아이콘이 표시되지 않는 이유를 아는 사람이 있습니까?

답변1

문제는 wget전체 쿼리 문자열과 함께 글꼴 이름을 저장하는 것입니다.fontawesome-webfont.ttf?v=3.2.1

반면에 브라우저는 ?v=3.2.1요청할 때 쿼리 문자열 부분( )을 버리고 요청만 시도합니다 fontawesome-webfont.ttf.

나는 솔직히 "누가 비난해야 하는가"를 모릅니다 - wget이나 브라우저.

fontawesome-webfont.ttf?v=3.2.1파일 링크를 fontawesome-webfont.ttf.

이것은 새로운 문제가 아닙니다. 이런 일은 다른 사람들에게도 일어났습니다https://gist.github.com/pigeonflight/f8d5d6efbadf8cb341d6a44d17de3d59(흥미롭습니다 - 동일한 글꼴입니다!).

이 문제에 대한 나의 해결책은 옵션을 사용하여 유닉스 파일 이름 지정 패턴을 피하는 것이었습니다 --restrict-file-names=windows. 이렇게 하면 올바르게 작동하기 @위해 태그를 사용하는 대신 wget을 다른 많은 작업(설명서 참조)과 함께 사용하게 됩니다 ?.

관련 정보