Wget이 웹페이지의 모든 링크를 다운로드할 수 없습니다.

Wget이 웹페이지의 모든 링크를 다운로드할 수 없습니다.

이 웹사이트에서 모든 PDF 파일을 다운로드하고 싶습니다.

http://www.math.utsc.utoronto.ca/b41/

내가 실행한 명령은 다음과 같습니다.

wget -r -A "*.pdf" "http://www.math.utsc.utoronto.ca/b41/"

그런데 웹사이트에 가보면 과제 1~10이 포함된 '과제' 탭이 있는데 무슨 이유에서인지 해당 과제가 다운로드되지 않나요? 여전히 같은 도메인에 있는데 wget http://www.math.utsc.utoronto.ca/b41/a*.pdf1 <= * <= 10이것을 다운로드하지 않습니까?

답변1

아래 맨페이지에서 wget:

Wget은 HTTP URL을 사용하여 주어진 URL에서 HTML 또는 CSS를 검색하고 구문 분석하며, href 또는 src와 같은 태그 또는 "url()" 기능 표기법을 사용하여 지정된 CSS URI 값을 통해 문서에서 참조하는 파일을 검색합니다. 새로 다운로드한 파일이 text/html, application/xhtml+xml 또는 text/css 유형인 경우 구문 분석되고 추가로 추적됩니다.

즉, 파일 위치가 페이지 소스 코드에 명시적으로 기록되지 않았지만 href일부 JavaScript 스니펫에 의해 생성되거나 서버에 일부 요청을 제출한 후 반환된 경우(예: PHP에서 반환) 저장되어 있더라도 같은 도메인에서도 우리는 그것으로 많은 일을 할 수 없습니다.srcwget

답변2

고려해야 할 한 가지 요소는 wget이 도메인 이름의 차이를 별도의 도메인으로 처리하고 기본적으로 제공된 도메인에서 벗어나지 않는다는 것입니다.

즉. 다운로드를 요청하면 https://example.com/somefile.html양식에 있는 내부 링크를 따르지 않습니다 <a href="https://www.example.com...">.

이 경우 다음을 제공해야 합니다.--span-hosts --domains=example.com

www.example.com이 경우 자동으로 일치하는 것처럼 보이므로 도메인 매개변수를 명시적으로 제공할 필요는 없는 것 같습니다 .

관련 정보