wget을 사용하여 자체 리디렉션 디렉터리에서 원하는 만큼의 파일을 다운로드하세요.

wget을 사용하여 자체 리디렉션 디렉터리에서 원하는 만큼의 파일을 다운로드하세요.

대학 웹사이트에서 많은 수의 PDF 파일을 다운로드하려면 wget을 사용해야 합니다(모든 파일을 수집하고 정리하는 것은 불가능하지는 않더라도 지루할 것입니다). 링크는 다음과 같습니다.

http://example.edu/path_to_directory/directory/foobar.pdf

다음 명령을 사용하고 있습니다.

wget -mk --no-check-certificate --load-cookies cookies.txt  http://example.edu/arbitrary_link_to_directory/directory/

불행하게도 PDF가 포함된 실제 디렉토리는 각각 오류 페이지로 리디렉션되며 내가 얻는 것은 html 및 css 파일 묶음뿐입니다.

http://example.edu/path_to_directory/directory/

브라우저에서 다음으로 리디렉션됩니다.

http://example.edu/path_to_directory/error/error.html

wget을 사용하여 문제의 모든 파일을 다운로드할 수 있습니까?

답변1

웹사이트에서 여러 파일을 다운로드하기 쉽지 않은(또는 적극적으로 어렵게 만드는) 경우 다음과 같은 파일 URL 목록을 생성합니다.

lynx -dump -listonly $URL | awk '/\.pdf/ {print $2}' > /tmp/pdflist.txt

그런 다음 일반적으로 파일을 편집하여 vi다운로드하고 싶지 않은 항목을 제거하고 마지막으로 wget을 사용하여 모든 항목을 가져옵니다.

wget --input-file=/tmp/pdflist.txt

이것은 간단한 작업에 잘 작동하고 일반적으로 중간 정도 어려운 작업에 충분합니다...하지만 복잡한 HTML을 구문 분석하고 링크(쿠키를 사용할 수 있음)를 따라가는 것과 관련된 어려운 작업의 경우 이 모듈을 사용하여 웹 봇 (일명 ) perl을 작성합니다 .libwww-perl경량 수압).

답변2

대학 웹사이트에 모든 PDF에 대한 링크가 포함된 페이지가 있습니까? 아니면 PDF 파일 이름 목록을 어떻게 알 수 있나요?

이 경우 프로그래밍 방식으로 페이지에서 링크를 가져온 다음 목록을 자동으로 반복하고 wget 또는 기타 도구를 사용하여 다운로드하는 scraper라는 스크립트를 작성해야 합니다. 스크레이퍼를 작성하려면 PHP 또는 Python을 사용하는 것이 좋습니다. 원본 웹사이트에서 최종 페이지 매기기를 쉽게 관리할 수 있습니다. PHP를 사용하는 경우 다음 명령을 사용하여 간단히 파일을 다운로드할 수 있습니다.

file_put_contents('destination_filename', file_get_contents('source_url');

관련 정보