
그래서 웹 서버, 특히 jpeg에서 모든 이미지를 다운로드하고 싶습니다. 내가 실행 중인 명령은 합법적인 것으로 보이며 웹사이트에 jpeg가 있다는 것을 알고 있습니다. 예를 들어
wget -r -PC:/ -A.jpghttp://somesitewithjpegs.com
이 명령은 jpeg 이미지만 충실하게 검색하여 전체 서버를 재귀적으로 검색한 다음 해당 이미지를 내 C:/ 드라이브에 다운로드한다는 것이 내 이해입니다. 어떤 이유로 이것은 작동하지 않습니다.
소스 코드를 보면 이미지가 실제로 페이지에 직접 포함되지 않고 서버의 다른 디렉터리에 호스팅된다는 것을 알 수 있습니다. 이것이 wget이 이러한 이미지를 다운로드하지 못하는 이유입니까?
답변1
내 질문에 대답하자면 wget은 링크를 따라가서 파일을 직접 다운로드할 수만 있다는 것이 사실입니다. 대부분의 이미지가 디렉토리 목록을 지원하지 않거나 제한사항이 있는 디렉토리에 어떻게 연결되어 있는지 볼 때, wget은 해당 디렉토리의 내용을 구문 분석할 방법이 없습니다.
이에 대한 좋은 예는 wp-content 폴더 아래에 이미지를 저장하는 WordPress 사이트입니다. 이 폴더를 탐색하려고 하면 403 금지 오류가 발생합니다. 브라우저에서 이 이미지를 링크된 그림으로 볼 수 있더라도 이미지가 직접 액세스할 수 없는 디렉토리에 저장되어 있기 때문에 wget은 이에 액세스할 수 없습니다.
세부 사항이 누락되었거나 프로세스를 올바르게 설명하지 않은 경우 누군가가 이 답변에 추가할 수 있습니다.
답변2
이것이 wget이 이러한 이미지를 다운로드하지 못하는 이유입니까?
답변 :아마도 / 아마도 그럴 겁니다.
다음 옵션을 추가해 보세요.
-l1 -H
그만큼-시간앱이 도메인을 확장하도록 지시합니다. 즉, 사이트에서 다른 곳을 가리키는 링크를 따라야 합니다.(이미지가 다른 서버에서 제공될 수도 있음). 그리고-l1 한 단계만 진행한다는 뜻입니다. 즉, 링크된 사이트의 링크를 따라가지 마세요. 이렇게 하면 이미지 파일을 호스팅하는 다른 서버에서 콘텐츠를 다운로드할 수 있습니다.
iirc, 전체 WordPress 사이트를 미러링하는 동안 wp-content 폴더의 이미지에 액세스할 수 있습니다.