Wget 명령은 네트워크 서버에 있는 모든 웹 페이지의 [목록]을 반환합니다.

Wget 명령은 네트워크 서버에 있는 모든 웹 페이지의 [목록]을 반환합니다.

www.example.com다음 페이지가 포함된 웹사이트 가 있다고 가정해 보겠습니다 .

www.example.com/page1
www.example.com/unknown
www.example.com/unknown

다음 출력을 생성하는 Wget 명령이 있습니까?

page1
page2
page3

웹사이트 구조가 다음과 같은 경우:

www.example.com/xxxx/page1
www.example.com/xxxx/page2
www.example.com/xxxx/page3

본질적으로 나는 서버 IP 주소를 가지고 있고, 내가 관심 있는 것 중 다운로드할 수 있는 것이 있는지 확인하기 위해 서버에 저장된 모든 페이지를 나열할 수 있기를 원합니다.

예를 들어, 나는 이것을 할 수 있고 wget -r www.example.com/page1내가 관심을 가질 만한 다른 디렉토리( page2등) 가 있는지 알고 싶습니다.page3

이 옵션과 다른 옵션을 살펴봤지만 --spider재미가 없었습니다.

답변1

클라이언트에서는 이 작업을 수행할 수 없지만 사이트맵을 찾아볼 수 있으며 때로는http://www.example.com/robots.txt파일에는 목록이 포함될 수 있습니다. Google에 목록을 요청하는 방법이 있을 수도 있고, 반환 기계에 마지막 목록이 있을 수도 있습니다.

답변2

전체 웹사이트를 재귀적으로 다운로드하도록 wget에 지시할 수 있지만 이는 각 페이지의 링크를 통해 수행됩니다. page1, page2 및 page3이 있는지 모르면 해당 항목을 검색하지 않습니다.

솔직히 다행스럽게도 HTTP는 그렇게 작동하지 않습니다.

답변3

이건 불가능 해. HTTP 요청 방법은 없으며 HTTP 검색 요청은 항상 특정 URL을 매개변수로 가져옵니다.

답변4

Rens와 franziskus가 말했듯이 page1에서는 이 작업을 수행할 수 있는 방법이 없으며 유일한 기회는 복사하려는 사이트가 어떻게 설정되어 있는지에 따라 다릅니다.

루트 디렉토리에 있을 가능성은 거의 없지만 하위 디렉토리(존재한다고 가정)는 파일 목록(일종의 시각적 FTP)을 제공하는 방식으로 구성될 수 있습니다. 그러나 대부분의 웹마스터가 숨기려고 하는 것, 즉 사이트의 내부 작동 방식을 이용하게 될 것입니다.

나는 이것을 성공적으로 활용하여 존재한다고 확신했지만 사이트 탐색을 통해 찾을 수 없는 정보를 얻었습니다. 아주 소수의 웹사이트에서만 작동합니다.

관련 정보