본문으로 바로가기

웹페이지 긁어오기 Snoopy.php

category IT를보다 2012. 4. 25. 15:34


제작하고 있는 백오피스 업무 사이트에서 타사 쇼핑몰의 제품 가격을 수집할 필요가 생겨 php 메뉴얼을 살펴보다가 file_get_contents() 라는 함수를 찾았다.


이 함수는 php.ini 의  alow_url_open 설정이 off 된 상태라면 무용지물이다. alow_url_fopen 옵션은 PHP에서 다양한 리소스를 마치 로컬 파일처럼 참조할 수 있게 하는 옵션인데  default 값이 on 상태이고 include문이나 rquire 문의 원격 파일 참조시에 오염된 데이터를 사용하게되면 심각한 취약점이 만들어질 수 가 있기때문에 off로 해놓는게 좋을것이지만 

내가 필요한 작업은 특정 url 에대한 질의결과를 수집하는것 이어서 다른 방법을 찾아야만 했는데 처음 부터 socket 접속을 통한 방법을 생각했지만 적당히 참조할 소스를 찾지 못하던중 Snoopy 라는 조금 위험한(?) 브라우져 클라이언트 소스가 있었다.

사용법도 코드 몇줄만 추가하면 원하는 페이지 html 을 가져올 수 있을정도로 쉬움으로 비슷한 작업을 하는 분들은 다른 것 찾지말고 이클래스를 사용하면 될 듯 하다. (Readme.txt 참조)



사용하고 있는 php 프레임웍이 코드이그나이터 여서 커스텀 라이브러리 폴더인 /application/libraries/  에 Snoopy 클래스를 복사하고 컨트롤러나 모델에서 바로 사용가능하였다.  

실제 결과물도 잘가져와(fetch) 만족스러웠다.


페이지 수집 , 로그인 처리 및 parameter 를 가지고 submit등의 작업을 할 수 있다 (Readme.txt 참조)



혹시 Snoopy.php 사용시 

728 라인 즈음 오류가 난다면  아래와 같이 수정을 하시면 문제없이 사용할 수 있다.

"?",

"?",

"?",

"?",

"?",

"?",

"?",

Snoopy-1.2.4.zip