스누피 [snoopy] 를 사용한 사이트 파싱 > php

본문 바로가기
사이트 내 전체검색

php

스누피 [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)

딱히 사용한적 없음

 










댓글목록

등록된 댓글이 없습니다.

Total 612건 14 페이지
게시물 검색

회원로그인

접속자집계

오늘
116
어제
163
최대
1,347
전체
154,650
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.