curl을 사용하여 웹 페이지에서 모든 파일 가져 오기


답변:


124

wget대신 사용하십시오 . brew install wgetHomebrew를 설치했거나 sudo port install wgetMacPorts를 설치 한 경우 설치할 수 있습니다 .

디렉토리 목록에서 파일을 다운로드하려면 -r(재귀), -np(부모 디렉토리에 대한 링크를 따르지 않음) -k을 사용하고 다운로드 한 HTML 또는 CSS의 링크가 로컬 파일을 가리 키도록하십시오 (credit @xaccrocheur).

wget -r -np -k http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/

다른 유용한 옵션들 :

  • -nd (디렉토리 없음) : 모든 파일을 현재 디렉토리로 다운로드
  • -e robots.off: robots.txt 파일을 무시하고 robots.txt 파일을 다운로드하지 마십시오
  • -A png,jpg: 확장자가있는 파일 만 허용 png하거나jpg
  • -m (거울): -r --timestamping --level inf --no-remove-listing
  • -nc, --no-clobber: 파일이 있으면 다운로드 건너 뛰기

3
wget -r -np -k http://your.website.com/specific/directory. 트릭은 -k로컬보기를 위해 링크 (이미지 등)를 변환하는 데 사용 하는 것입니다.
yPhil

brew그리고 portwget과를 설치하는 나를 위해 작동하지 않습니다. 어떻게해야합니까?
Hoseyn Heydari 2016 년

@HoseynHeydari : osx의 컴파일 된 바이너리에 rudix.org를 사용할 수 있습니다. 그래서 당신은 rudix를 설치하고 다음을 사용해야합니다 : sudo rudix install wget
Mamonu

옵션 -k이 항상 작동하지는 않습니다. 예를 들어, 웹 페이지에서 동일한 파일을 가리키는 두 개의 링크가 재귀 적으로 캡처하려고 wget하면 첫 번째 인스턴스의 링크 만 변환하고 두 번째 링크는 변환하지 않는 것 같습니다.
Kun

22

curl하나의 웹 페이지 파일 만 읽을 수 있습니다. 여러 줄은 실제로 디렉토리 색인입니다 (이 URL로 이동하면 브라우저에도 표시됨). 사용 curl및 일부 유닉스 도구 마술은 파일이 당신이 좋아하는 무언가를 사용할 수 얻으려면

for file in $(curl -s http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/ |
                  grep href |
                  sed 's/.*href="//' |
                  sed 's/".*//' |
                  grep '^[a-zA-Z].*'); do
    curl -s -O http://www.ime.usp.br/~coelho/mac0122-2013/ep2/esqueleto/$file
done

모든 파일을 현재 디렉토리로 가져옵니다.

폴더 / 디렉토리가있는 사이트에서 많은 파일을 얻는 것을 포함하여보다 정교한 요구 wget가있는 경우 이미 다른 답변에서 제안한 것처럼 더 나은 옵션입니다.


감사합니다. 이것은 좋은 솔루션이며 작업 예제를 제공하는 것이 좋습니다!
egelev

1
xmllint --html --xpath '//a/@href'아마보다 더 나은 파서 일 것 grep입니다.
ceving

7

참조 : http://blog.incognitech.in/download-files-from-apache-server-listing-directory/

다음 명령을 사용할 수 있습니다.

wget --execute="robots = off" --mirror --convert-links --no-parent --wait=5 <website-url>

각 옵션에 대한 설명

  • wget: CURL을 요청하고 로컬 파일로 원격 파일을 다운로드하는 간단한 명령입니다.
  • --execute="robots = off": 페이지를 크롤링하는 동안 robots.txt 파일을 무시합니다. 모든 파일을받지 못한 경우 도움이됩니다.
  • --mirror:이 옵션은 기본적으로 주어진 URL의 디렉토리 구조를 반영합니다. 바로 가기입니다 -N -r -l inf --no-remove-listing.
    • -N: 로컬보다 최신이 아닌 경우 파일을 다시 검색하지 마십시오
    • -r: 재귀 다운로드 지정
    • -l inf: 최대 재귀 깊이 (무한의 경우 INF 또는 0)
    • --no-remove-listing: '.listing'파일을 제거하지 마십시오
  • --convert-links: 다운로드 한 HTML 또는 CSS의 링크가 로컬 파일을 가리 키도록합니다.
  • --no-parent: 상위 디렉토리로 올라가지 마십시오.
  • --wait=5: 검색 사이에 5 초 동안 기다립니다. 그래서 우리는 서버를 쓰러 뜨리지 않습니다.
  • <website-url>: 파일을 다운로드 할 수있는 웹 사이트 URL입니다.

해피 다운로드 : 스마일 :


3

Windows / MacOS에서 사용 가능하고 Homebrew를 통해 설치 가능한 httrack을 사용할 수 있습니다 .


나에게 새로운 것, 고마워 최고는 빠르고 빠릅니다 : 하나의 라이너. 지방을 자르고 모든 쓰레기를 피하십시오.
피터 테오

0

GUI를 사용하여 응용 프로그램을 사용하려는 사람들에게는 일반적으로 필요한 작업을 처리 할 수있는 사전 설정 목록과 함께 사용자에게 친숙한 방식으로 구현되는 저렴한 쉐어웨어 프로그램 DeepVacuum for Mac OS Xwget 가 있습니다. 사용자 정의 구성을 사전 설정으로 저장할 수도 있습니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.