2015-02-04
wget 메뉴얼이 방대한 만큼 wget의 활용 방법도 상당하다. 아래는 필자가 사용해본 몇가지 wget의 활용 방법을 예제로 적어놓은 것이다.

wget -O 'ftp_test' --ftp-user=[ftp유저아이디] --ftp-password=[ftp비밀번호] [ftp주소]
이렇게 하면 'ftp_test'라는 파일이 생성되어 해당 페이지의 내용을 담고 있게 된다. 여기서 '-O'옵션을 주지 않으면, 해당페이지의 이름으로 파일이 생성된다.

wget -O [생성될파일] --keep-session-cookies --save-cookies [쿠키저장파일] --post-data='id=아이디&psswd=비밀번호' [url]
위처럼 로그인 페이지에 post방식으로 아이디와 비밀번호를 전송한뒤에, 쿠키를 굽고 세션을 유지시켜 놓으면, 아래와 같이 해당 쿠키 파일을 로드 하여 로그인 해야 접근 가능한 페이지들 즉, 쿠키나 세션에 의해서 체크가 되는 페이지들에도 접근 가능하다.
만약 해당 웹사이트가 쿠키만으로 로그인을 유지한다면(요즘은 이런 사이트가 드물지만) 세션 유지는 안해주어도 된다.
여기서 패스워드에 특수문자가 들어갈 경우에는 해당 값을 encoding한 값으로 해주어야 제대로 작동된다.
그리고 페이지url은 로그인창이 있는 페이지가 아닌, 로그인 버튼을 눌렀을때 submit 되어 실제로 post값이 사용 되는 페이지여야 한다는걸 알아두길 바란다.

wget -O [생성될파일] --load-cookies [위에서저장한쿠키저장파일] [페이지url]
위에서 생성된 쿠키 파일로 로그인해야 접근 가능한페이지로 접근할때 이렇게 사용 하면 된다.

wget --spider --save-cookies test_cookie --post-data='aa=a&bb=b' [페이지url]
--spider옵션을 붙이면, 해당 페이지에 접속은 하지만 다운로드 하지는 않는다. 하지만 쿠키값은 저장된다.
참고로 페이지 url에 get방식으로 파라미터들이 &을 구분자로 여러개 있다면, url에 따옴표나 쌍따옴표를 해주어야 제대로 적용 된다.

//------------------추가사항 2015.02.05
php에서 exec()이나 system() 함수를 사용하여 wget을 사용할때는 wget으로 생성되는 파일 때문에, 파일 생성 권한이 있는 폴더 내에서 해당 함수가 실행 되야 제대로 wget이 실행 된다.