스누피 [snoopy] 를 사용한 사이트 파싱
페이지 정보
작성자 서방님 댓글 0건 조회 419회 작성일 16-10-11 11:33본문
스누피 소스 다운로드
https://sourceforge.net/projects/snoopy/files/latest/download
=================================
출처 : http://jajang22.tistory.com/1
일반 페이지 호출
$snoopy = new Snoopy;
$url = "http://example.com";
$snoopy->fetch($url);
$list_result = $snoopy->results;
로그인 페이지 호출
$snoopy = new Snoopy;
$url_login = "http://example.com/login_act.php";
$login_data = array(
"user_id" => $userid
, "password" => $userpw
);
$snoopy->submit($url_login,$login_data);
$snoopy -> setcookies();
$snoopy->fetch($url);
$list_result = $snoopy->results;
=======================================
변수명 | 내용 |
$host | 파싱할 사이트 주소 |
$port | 파싱할 사이트 포트 |
$proxy_host | 프록시 로 파싱할 사이트 주소 |
$proxy_port | 프록시 로 파싱할 사이트 포트 |
$proxy_user | 프록시 로 파싱할 사이트의 아이디 |
$proxy_pass | 프록시 로 파싱할 사이트의 패스워드 |
$agent |
브라우저 에이전트 헤더 전송시에 가공해서 씀 pc : 는 그냥 써도 될듯 모바일 : Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16 이렇게 입력해서 사용중이다
|
$referer |
리퍼주소 가끔 파싱할 사이트에서 이전페이지를 체크를 하는곳도 있다 이 변수에다가 강제로 해당 사이트의 논리상 이전페이지 주소를 얻어서 여기다가 저장하면 된다.
|
$cookies |
파싱할 사이트에서 생성한 쿠키가 해당 변수에 배열로 저장이 된다. fetch 함수를 써서 페이지 호출할때는 별로 안쓰는데 로그인을 필요한 사이트에서 로그인시 해당 쿠키를 저장을 꼭 해야 된다 안그러면 로그인이 안된걸로 인식을 한다. ps ) 어떤 사이트는 파싱한 사이트에서 생성한 쿠키가 아닌 타 사이트의 쿠키를 발생해 그걸로 체크를 하는경우도 있다 그럴땐 해당 변수에 저장이 안된다. 이점 명심해야 한다.
|
$rawheaders |
파싱할 사이트에 url 호출시에 헤더 정보를 먼저 보내는데 이 변수에다가 헤더정보를 가공을 해서 할수가 있다. $agent 변수는 편의상 바로 헤더정보를 가공을 하는거고 snoopy 에서 헤더정보 가공하는 변수가 없는것들은 여기에다가 가공을 하면 된다.
|
$maxredirs |
파싱할 사이트에서 페이지를 바로 리다이렉트 할시 몃번까지 리다이렉트한거 따라갈건지 의 변수같은데 써본적은 없음
|
$lastredirectaddr |
파싱할 사이트에서 페이지를 바로 리다이렉트 할시 마지막 리다이렉트 주소 같음 써본적은 없음
|
$offsiteok | 뭔지 모름 다른 함수에서 사용한 흔적이 없음 |
$maxframes | 뭔지 모름 몰라도 잘 되더만.. |
$expandlinks | 뭔지 모름 몰라도 잘 되더만.. |
$passcookies | 쿠키도 비밀번호가 있나? 뭔지 모름 |
$user | Authorization 방식 인증시에 쓰는거 같은데 Authorization 를 써본적이 없어서 모름 |
$pass | Authorization 방식 인증시에 쓰는거 같은데 Authorization 를 써본적이 없어서 모름 |
$accept | 헤더 전송시에 가공해서 씀 인코딩 방식인 을 가공할경우 사용함 |
$results | 파싱할 사이트 결과 저장 변수 |
$error | 에러 메시지 변수 |
$response_code | 리턴코드 |
$headers | 파싱할 사이트에서 결과 리턴시 해당 헤더 배열 변수 |
$maxlength |
|
$read_timeout |
|
$timed_out |
|
$status |
|
$temp_dir |
|
$curl_path |
|
$_maxlinelen |
|
$_httpmethod | html 에서 submit 할시 mehtod 속성 값 흔히 주소뒤에 ?id=123 이런식으로 할시 GET 을 아니면POST 를 넣는다 |
$_httpversion | http 버젼인데 딱히 쓸곳이 있나? |
$_submit_method | 서브밋 사용된 method 인데 이건 거의 POST 로 설정 |
$_submit_type | 서브밋시 사용된 인코딩 형태값 딱히 안건드렸음 아마도 snoopy 를 사용해서 외부서버에 파입 업로드 할시 사용할거 같음 |
$_mime_boundary |
|
$_redirectaddr |
|
$_redirectdepth |
|
$_frameurls |
|
$_framedepth |
|
$_isproxy |
|
$_fp_timeout |
|
함수명 | 내용 |
function fetch($url) | 흔히 GET 방식때 사용함 매게변수에다가 파싱할 사이트 주소를 입력함 |
function submit($URI, $formvars="", $formfiles="") | POST 로 서브밋시 사용함 흔히 로그인쪽에서 많이 사용하는데 첫번째 매게변수는 파싱할 사이트 주소 두번째 파라미터는 url 파람값 세번째는 파일시 파일값인가?? 파일로 서브밋을 안해바서 세번째꺼는 모르겠음 |
function fetchlinks($URI) | GET 방식으로 파싱할 사이트를 호출하는 방식인데 기능이 추가되어 내부적으로 정규식이 동작을 하여 소스중 a테그 걸린 링크만 배열로 리턴함 |
function fetchform($URI) | GET 방식으로 파싱할 사이트를 호출하는 방식인데 기능이 추가되어 내부적으로 정규식이 동작을 하여 폼테그 내용만 리턴함 |
function fetchtext($URI) | GET 방식으로 파싱할 사이트를 호출하는 방식인데 기능이 추가되어 내부적으로 정규식이 동작을 하여 순수 텍스트만 리턴함 이건 사용이 애매할수 있음 |
function submitlinks($URI, $formvars="", $formfiles="") | fetchlinks 이 함수랑 비슷한데 틀린점은 POST 로 한다는거 |
function submittext($URI, $formvars = "", $formfiles = "") | fetchtext 이 함수랑 비슷한데 틀린점은 POST 로 한다는거 |
function set_submit_multipart() | 폼의 컨텐츠 타입을 멀트로 변경하는 함수 |
function set_submit_normal() | 폼의 컨텐츠 타입을 기본 디폴트로 변경하는 함수 |
function _striplinks($document) | 정규식으로 a테그 링크만 가져오는 함수 내부적으로 사용함 소스 복사해서 정규식을 응용하면 참 좋음 |
function _stripform($document) | 폼테그만 가져오는 정규식 |
function _striptext($document) | 텍스트만 가져오는 정규식 |
function _expandlinks($links,$URI) | 안써봐서 모름 |
function _httprequest($url,$fp,$URI,$http_method,$content_type="",$body="") | 파싱할 사이트가 일반 웹페이지인 http 로 시작할때 사용되는 함수 첫번째 매게변수는 파싱할 주소 두번째 매게변수는 파일포인터 세번째 매게변수는 GET,POST 타입 네번째 매게변수는 url 호출시 전송할 헤더의 컨텐츠 타입 다섯번째 매게변수는 url 호출시 전송할 헤더의 기타 내용 |
function _httpsrequest($url,$URI,$http_method,$content_type="",$body="") | 파싱할 사이트가 보안 웹페이지 인 https 로 시작할때 사용되는 함수 매게변수는 위의 내용과 동일 |
function setcookies() | 파싱할 사이트에서 쿠키 발생시 이 함수를 사용하여 해당 쿠키를 배열로 저장 |
function _check_timeout($fp) | 소켓 타임아웃인듯 |
function _connect(&$fp) | 소켓 접속시 |
function _disconnect($fp) | 소켓 해제시 |
function _prepare_post_body($formvars, $formfiles) | 딱히 사용한적 없음 |
댓글목록
등록된 댓글이 없습니다.