Wget을 사용하여 단일 웹 페이지 (배경 이미지 포함) 저장


73

Wget을 사용하여 참조를 위해 단일 웹 페이지 (전체 사이트가 아닌 재귀 적으로)를 저장하고 싶습니다. Firefox의 "Web Page, complete"와 매우 유사합니다.

내 첫 번째 문제는 Wget이 CSS에 지정된 배경 이미지를 저장할 수 없다는 것입니다. 배경 이미지 파일을 저장하더라도 --convert-links는 CSS 파일의 배경 이미지 URL을 로컬로 저장된 배경 이미지를 가리 키도록 변환한다고 생각하지 않습니다. Firefox도 같은 문제가 있습니다.

내 두 번째 문제는 페이지에 저장하려는 이미지가 다른 서버 (예 : 광고)에서 호스팅되는 경우 포함되지 않습니다. --span-hosts는 아래 줄에서 그 문제를 해결하지 못하는 것 같습니다.

나는 사용하고있다 : wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off http://domain.tld/webpage.html


1
정확히 같은 줄 (wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots = off domain.tld)는 실제로 참조 된 배경 이미지를 저장합니다 1.12로 업데이트 한 후의 CSS 매뉴얼에 "http URL을 사용하면 Wget은 주어진 URL에서 HTML 또는 CSS를 검색하고 구문 분석하여 href 또는 src와 같은 마크 업 또는 'url ()'기능을 사용하여 지정된 CSS URI 값을 통해 문서가 참조하는 파일을 검색합니다. 표기법." 두 번째 문제는 여전히 해결되어야합니다.
user14124

답변:


106

로부터 를 Wget man 페이지 :

실제로 단일 페이지와 모든 필수 구성 요소를 별도의 웹 사이트에있는 경우에도 다운로드하고 로트가 제대로 로컬로 표시되도록하려면이 저자는 '-p'외에도 몇 가지 옵션을 사용하는 것을 좋아합니다.

wget -E -H -k -K -p http://www.example.com/

또한 robots.txt당신이 추가 허용하지 않는 경우-e robots=off


그것은 단지 js와 css를 절대 URL로 다시 쓰는 것 같습니다
Greg Dean

1
신경 쓰지 마라. robots.txt로 해결 방법으로 답변을 업데이트 할 수 없음
Greg Dean

19
확장 :wget --adjust-extension --span-hosts --convert-links --backup-converted --page-requisites [url]
sam

4
또는 더 나은 아직 wget --recursive --no-clobber --page-requisites --html-extension --convert-links --restrict-file-names=windows[url]
Petah

@ {etah : 인수를 사용하여 명령을 시도했는데 지정된 웹 페이지 외에 다른 웹 페이지가 다운로드됩니다.
Tim

7

wget명령은 옵션을 제공하며 다음 --mirror과 같은 기능을 수행합니다.

$ wget -r -N -l inf --no-remove-listing

-x호스트 이름을 포함하여 사이트에 대한 전체 디렉토리 계층 구조를 작성하기 위해 처리 할 수도 있습니다 .

wget그러나 최신 버전을 사용하지 않는 경우이 기능을 찾지 못할 수도 있습니다 .


1
전체 URL을 하위 웹 사이트로 크롤링 할 것입니다.
4253wyerg4e

2

그것은 같은 소리 wget와 파이어 폭스는 다운로드에서 해당 파일을 포함하는 링크에 대한 CSS를 구문 분석하지 않습니다. 다운로드 가능한 파일에서 CSS 또는 Javascript에서 링크 추출을 스크립팅하여 누락 된 파일 목록을 생성함으로써 이러한 제한 사항을 해결할 수 있습니다. 그런 다음 wget해당 링크 목록 에서 두 번째 실행을 수행하면 누락 된 항목을 파악할 수 있습니다 ( -i플래그를 사용하여 URL을 나열하는 파일 지정).

Perl을 좋아한다면 CPAN에 CSS :: Parser 모듈이있어 이런 방식으로 링크를 쉽게 추출 할 수 있습니다.

그 참고 wget특정 HTML 마크 업 (구문 분석 href/ src) 및 CSS URI를 ( url()얻을 어떤 페이지 요건 결정). DOM Inspector 또는 Firebug와 같은 Firefox 애드온을 사용하여 얻지 못하는 타사 이미지가 Javascript를 통해 추가되는지 알아낼 수 있습니다. 그렇다면 스크립트 또는 Firefox 플러그인을 사용하여 가져와야합니다. 너무.


첫 번째 게시물에 대한 의견에서 말했듯이 v1.12에서 수정 된 것으로 보입니다. 그래도 다른 서버에있는 이미지를 포함시키는 방법을 모르겠습니다.
user14124

네, CSS를 구문 분석 wget과의 v1.12로의 새로운, 그것은 변경 로그의 상단에있다 : freshmeat.net/urls/376000c9c7a02f7a3592180c2390ff04
돌팔이 의사 키호테

-H 옵션을 목록에 추가하십시오. --span-hosts를 나타내며 외부 호스트에서 컨텐츠를 다운로드 할 수 있습니다.
Michael

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