wget이 기존 연결을 재사용하는 것을 중지하시겠습니까?

wget이 기존 연결을 재사용하는 것을 중지하시겠습니까?

그래서 특정 웹 페이지를 가져오기 위해 bash 스크립트에서 이 명령을 사용해 보았습니다.

wget --no-cookies --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" -O $2/content.html $1

결과는 wget이 기존 연결을 재사용하기 때문에 웹사이트에서 로봇 페이지를 얻는 것입니다. 이 명령은 스팸 테스트를 수행하기 전에 작동했으며 이제 내 서버가 사이트에서 봇 테스트 리디렉션을 받고 있습니다(이 명령을 사용할 수 없음).

--2017-12-12 19:16:42--  https://www.kayak.co.uk/h/bots/human-redirect.vtl?url=%2Fflights%2FDUB-LAX%2F2018-06-04%2F2018-06-25%2F2adults%3Fsort%3Dbestflight_a
Reusing existing connection to [www.kayak.co.uk]:443.
HTTP request sent, awaiting response... 200 OK

내 질문은: wget이 기존 연결을 사용하고 다운로드할 때마다 사이트에 다시 연결하는 것을 방지하는 방법이 있습니까?

답변1

나는 이것이 오래된 질문이라는 것을 알고 있지만 아마도 나처럼 이 문제를 겪는 다른 사람들에게 도움이 될 것입니다.

"연결 유지" 기능을 비활성화하려면 이 --no-http-keep-alive매개변수를 사용하십시오.

매뉴얼 페이지에서:

HTTP 다운로드에 대한 "연결 유지" 기능을 끄십시오. 일반적으로 Wget은 동일한 서버에서 여러 문서를 다운로드할 때 동일한 TCP 연결을 통해 전송되도록 서버에 연결을 열어두도록 요청합니다. 이렇게 하면 시간이 절약되고 서버의 부하가 줄어듭니다.

이 매개변수는 일반적으로 새로운 깨끗한 요청이 필요한 상황에서 필요합니다. 비록 엄격하게 관련되어 있지는 않지만, 매개변수는 --no-cache매개변수를 사용하는 --no-cookies맥락에서 관련될 수도 있습니다 .--no-http-keep-alive

따라서 OP의 명령은 다음과 같습니다.

wget --no-http-keep-alive --no-cache --no-cookies --header="Accept: text/html" --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0" -O $2/content.html $1

관련 정보