[php 스크래핑,파싱] 크롬 network를 분석해서 워크넷 로그인을 스누피로 하는 방법 (1)
스누피를 다운 받으면 README 파일에 간단한 예제들이 있다.
이것을 기반으로 워크넷 로그인 하는방법을 연구해보자.
일단 스누피 README 파일을 열어보면 아래와 같이 되어 있다.
NAME:
Snoopy - the PHP net client v2.0.0
SYNOPSIS:
include "Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetchtext("http://www.php.net/");
print $snoopy->results;
$snoopy->fetchlinks("http://www.phpbuilder.com/");
print $snoopy->results;
$submit_url = "http://lnk.ispi.net/texis/scripts/msearch/netsearch.html";
$submit_vars["q"] = "amiga";
$submit_vars["submit"] = "Search!";
$submit_vars["searchhost"] = "Altavista";
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
여기서 아래 부분을 참고해서 워크넷 로그인에 적용해보자
$submit_url = "http://lnk.ispi.net/texis/scripts/msearch/netsearch.html";
$submit_vars["q"] = "amiga";
$submit_vars["submit"] = "Search!";
$submit_vars["searchhost"] = "Altavista";
$snoopy->submit($submit_url,$submit_vars);
print $snoopy->results;
워크넷에 적용하려면 일단 워크넷 소스를 분석해야 한다.
<form id="defaultForm" name="defaultForm" method="post" action="https://www.work.go.kr/member/login.do" onsubmit="return f_login();">
<input type="hidden" id="redirectUrl" name="redirectUrl" value="/seekWantedMain.do"/>
<input type="hidden" id="lgovCustId" name="lgovCustId" value=""/>
<input type="hidden" id="ifOrgCd" name="ifOrgCd" value=""/>
<input type="hidden" id="redirectEncodeYn" name="redirectEncodeYn" value=""/>
<input type="hidden" id="custClcd" name="custClcd" value=""/>
<input type="radio" id="chkCustClcd" name="chkCustClcd" style="display:none" title="회원구분 체크" />
<fieldset>
<legend>로그인</legend>
<div class="type_user">
<!-- 선택 시 class="on" 추가 -->
<button type="button" id="custClcdLiP" onClick="fnIndivLoginYn('P');">개인회원</button>
<button type="button" id="custClcdLiC" onClick="fnIndivLoginYn('C');">기업회원</button>
</div>
<div class="inner" id="divLoginBox">
<dl>
<dt class="hid">아이디</dt>
<dd><input type="text" id="custId" name="custId" value="" class="id" title="아이디입력" maxlength="24" style="ime-mode:disabled;" show="require,eng" /></dd>
<dt class="hid">비밀번호</dt>
<dd><input type="password" id="pwd" name="pwd" value="" title="비밀번호입력" maxlength="16" style="ime-mode:disabled;" show="require,eng" /></dd>
</dl>
<div class="sub">
<ul>
<li class="id"><input type="checkbox" id="chkIdSave" value="Y" /><label for="chkIdSave">ID저장</label></li>
<li class="join"><a href="/member/custJoin/retrieveCustJoinTp.do?joinReturnUrl=&lgovCustId=&ifOrgCd=">회원가입</a></li>
<li><a href="/member/idPwdVw/retrieveCustIdPwdInfoView.do">ID/PW찾기</a></li>
</ul>
</div>
<div class="btn_group">
<input type="submit" id="btnLogin" name="btnLogin" value="로그인" class="btn_login" title="로그인" style="cursor:pointer;" />
워크넷 소스는 이렇게 되어 있다. 이제 두개를 접목하면 아래와 같이 쓸 수 있다.
<?
include "Snoopy.class.php";
$snoopy=new Snoopy;
$submit_url_form = "https://www.work.go.kr/member/login.do";
$submit_vars["redirectUrl"] = "/seekWantedMain.do";
$submit_vars["custId"] = "ㅁㅁㅁ";
$submit_vars["pwd"] = "ㄹㄹㄹㄹ";
$snoopy->submit($submit_url_form,$submit_vars);
print $snoopy->results;
?>
위와 같이하면 될지 알았는데 안됐다.. ㅜㅜ
왜 안되지 하며 분석해봤다. 과거에는 피들러로 분석했는데 이제는 크롬 네트워크를 봐도 분석이 가능하다.
다음글에 계속..