파일 대신 wget --recursive를 stdout(예: -O - )으로 라우팅합니다.

파일 대신 wget --recursive를 stdout(예: -O - )으로 라우팅합니다.

웹사이트 콘텐츠를 재귀적으로 "스캔"하여 다른 프로그램으로 파이프하고 싶습니다.

내가 실행할 때 :

wget -r -O - $SITE

알겠어요

WARNING: combining -O with -r or -p will mean that all downloaded content
will be placed in the single file you specified.

그런 다음 "다운로드" 프로세스가 시작되지만 첫 번째 페이지가 완료된 후 중단됩니다. "중지"라는 말은 아무 일도 일어나지 않는 것 같고 명령 프롬프트를 클릭할 때까지 명령 프롬프트로 돌아가지 않는다는 것입니다 Ctrl+C.

wget나는 임시 폴더로 출력하고 파일별로 스캔하는 옵션과 나만의 클리퍼를 작성하는 옵션을 피하고 싶습니다 . 이는 2012년 후반에 생각할 수 있는 가장 중복된 동작처럼 보입니다.

답변1

검색을 통해 이 주제를 찾는 사람을 위해(1년 반 후), 컬이 기본적으로 stdout으로 경로를 지정하고 wget이 이 목적에 적합하지 않은 것 같다는 사실을 발견했습니다. 그래서 내 해결책은 다음과 같습니다.

wget 대신 컬을 사용하세요.

답변2

wget -r -O - $SITE | scanningProgram

파일 이름, 디렉터리 이름, 경로 등에 신경 쓰지 않는 한 작동합니다.

이것은 예이다

wget -r -O - http://ginatrapani.googlepages.com | sed 's/./X/g'

이 사이트의 모든 출력은 X 문자로 변환됩니다.

답변3

-O와 함께 -r 또는 -p를 사용하면 예상대로 작동하지 않을 수 있습니다. Wget은 첫 번째 파일만 파일로 다운로드한 다음 나머지 파일을 일반 이름으로 다운로드하지 않습니다. 다운로드한 모든 콘텐츠는 파일에 배치됩니다. wget \ - -recursive를 사용해 보세요. \ --page-requirements \ --html-extension \ --convert-links \ --restrict-file-names=windows \ --domains website.org \ --no-parent \ $SITE

관련 정보